再会,
我有一个包含一些数据的集合:
Set< AItem > aItems = aItem
.getItems( );
因为我想做一些排序,所以我先转换成list,排序后,再转回set:
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
如果我在这个集合中添加新项目,这不会给我。但是我的排序不见了, Set 没有正确排序。
有什么想法可以对我的 Set 进行排序,然后可以毫无例外地在里面添加更多项目吗?
好心提醒。