2

I'm currently searching for a Java implementation of a Set that keeps the original insertion order and provides access by index. Additionally I would like to have a bulk appendAll() method that takes another collection and appends it to the end (excpet for duplicates, sincethis is a Set).

LinkedHashSet goes somewhat in the right direction but it's missing index access and bulk append.

I could write this on my own, but why reinvent the whell?

4

1 回答 1

2

Apache Commons 中的ListOrderedSet怎么样?

装饰另一个 Set 以确保迭代器保留和使用添加的顺序。

如果第二次将对象添加到集合中,它将在迭代中保持在原始位置。可以通过迭代器或 toArray 方法从集合中观察顺序。

ListOrderedSet 也有各种有用的直接方法。其中包括许多来自 List 的内容,例如get(int)、 remove(int) 和 indexOf(int)。可以通过 asList() 获得集合的不可修改的列表视图。

它实现了 java.util.Set,但由于.get(index)不是 Set 定义的方法,您需要确保将其作为 ListOrderedSet 传递,而不是 Set。

于 2013-10-04T14:32:39.367 回答