I am getting the unique elements from a arraylist into a hashset but it is being sorted by itself.But i need the data not to be in sorted order.How can it be done?
问问题
2499 次
2 回答
4
HashSet 得到排序
a 的项目HashSet
根本没有特定的顺序,正如其javadoc中明确指出的那样:
它不保证集合的迭代顺序;特别是,它不保证订单会随着时间的推移保持不变。
也许您的意思是说这些项目的“重新排列”顺序与您添加项目的顺序不同,这是不可取的。
在这种情况下,只需使用LinkedHashSet
而不是HashSet
. 它以插入顺序维护元素。
Set<T> unique = new LinkedHashSet<T>(arrayList);
或者,也许,如果您更喜欢基于元素Comparable#compareTo()
实现的自动排序,或者想要提供一个 custom Comparator
,那么使用 aTreeSet
代替。
Set<T> uniqueAndSorted = new TreeSet<T>(arrayList);
也可以看看:
于 2012-11-20T13:32:29.297 回答
0
'我想要不按排序顺序的数据'是什么意思?你的意思是说你想要它在列表中出现的相同顺序吗?如果是这样,您可以创建一个 LinkedHashSet 并添加来自 arraylist 的条目。
例如:ArrayList list = new ArrayList(); LinkedHashSet set = new LinkedHashSet(); for (String temp: list) { set.add(temp);
}
这将确保元素在 arraylist 中出现的顺序相同。
于 2012-11-20T14:46:05.043 回答