良い一日、
いくつかのデータを含むセットがあります:
Set< AItem > aItems = aItem
.getItems( );
ソートを行いたいので、最初にリストに変換し、ソート後、セットに戻すだけです。
List< AItem > tempoAccounts = new ArrayList(aItems);
Collections.sort(tempoAccounts, new Comparator() {
public int compare(Object arg0, Object arg1) {
// sorting logic here
}
});
// convert from list back to set
aItems = ImmutableSet.copyOf(tempoAccounts);
これにより、正しい結果が得られ、すべてのデータがそれに応じてソートされます。
ただし、さらにアイテムを追加したい場合aItems
:
AItem aai = new AItem();
aai.setAId( (long) 2222 );
aai.setLimit( BigDecimal.ZERO );
それから私はヒットします:
Exception created : [java.lang.UnsupportedOperationException
at com.google.common.collect.ImmutableCollection.add(ImmutableCollection.java:91)
だから私は
aItems = ImmutableSet.copyOf(tempoAccounts);
に
aItems = new HashSet<AItem>(tempoAccounts);
UnsupportedOperationException
このセット内に新しいアイテムを追加しても、これは得られません。しかし、私のソートはなくなりました。セットは正しくソートされていません。
セットを並べ替えて、例外なく内部にアイテムを追加できるアイデアはありますか?
親切なアドバイス。