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 を装飾して、追加の順序が保持され、反復子によって使用されるようにします。

オブジェクトが 2 回目にセットに追加された場合、そのオブジェクトは繰り返しの元の位置に残ります。順序は、イテレータまたは toArray メソッドを介してセットから観察できます。

ListOrderedSet には、さまざまな便利なダイレクト メソッドもあります。これらには、 get(int)、 remove(int) 、 indexOf(int)など、List の多くが含まれます。セットの変更不可能なリスト ビューは、asList() を介して取得できます。

これは java.util.Set を実装していますが、これ.get(index)は Set によって定義されたメソッドではないため、Set ではなく ListOrderedSet として渡す必要があります。

于 2013-10-04T14:32:39.367 に答える