有没有办法创建一个List/Set来保持插入顺序,并且不允许在Java中重复?

Way*_*yne 4 java list set

维护列表的最有效方法是什么,该列表不允许重复,但维护插入顺序,还允许检索Java中最后插入的元素?

Tho*_*mas 10

尝试LinkedHashSet,它保持输入的顺序.

请注意,重新插入元素会更新其在输入顺序中的位置,因此您可能首先尝试检查该元素是否已包含在集合中.

编辑:

您还可以尝试Apache commons集合类ListOrderedSet,根据JavaDoc(如果我没有再读取任何内容:))将装饰一个集合以保持插入顺序并提供get(index)方法.

因此,似乎你可以通过使用获得你想要的东西new ListOrderedSet(new HashSet());

不幸的是,这个类没有提供通用参数,但它可能会让你开始.

编辑2:

这是一个似乎用泛型表示公共集合的项目,即它有一个ListOrderedSet<E>,因此你可以调用new ListOrderedSet<String>(new HashSet<String>());

  • 最后一部分是错误的.直接来自JavaDoc:"请注意,如果将元素重新插入到集合中,则插入顺序不会受到影响." (3认同)