如何从 Arraylist 中获取唯一项,保持自然顺序 [英] how to get unique items from the Arraylist, preserving the natural order
本文介绍了如何从 Arraylist 中获取唯一项,保持自然顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
例如 ArrayList :
For example ArrayList :
Integer[] intArray = new Integer[] { 0, 1 , 0 , 2 , 3 , 3 , 5 , 6 , -4 ,6 };
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(intArray));
需要获取非重复值,保持顺序
need to get non-repeating values, preserving order
1 , 2 , 5 , -4
0、3 和 6 被删除,因为它们出现了不止一次.
0, 3 and 6 are removed because they occur more than once.
推荐答案
将元素放入LinkedHashSet
;如果你找到一个已经存在的元素,把它放到另一个集合中;删除最后所有已经存在"的元素:
Put the elements into a LinkedHashSet
; if you find an element that's already present, put it into another set; remove all the "already present" elements at the end:
LinkedHashSet<Integer> set = new LinkedHashSet<>();
HashSet<Integer> alreadyPresent = new HashSet<>();
for (Integer i : intArray) {
if (!set.add(i)) {
alreadyPresent.add(i);
}
}
set.removeAll(alreadyPresent);
ArrayList<Integer> list = new ArrayList<>(set);
这篇关于如何从 Arraylist 中获取唯一项,保持自然顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文