我有一个包含值的数组:
[1,2,2,8,8,10,10,10,11,]
我想要这样的数组:
[1,2,8,10,11]
如何删除所有条目以便仅保留唯一值?
最佳答案
您的意思是条目应该是唯一的。
我恰好在几分钟前回答过一个非常相似的问题,所以这里是调整后的代码:
public class Main {
public static void main(String[] args) {
Integer[] arr = {1, 2, 2, 8, 8, 10, 10, 10, 11 };
System.out.println(Arrays.toString(arr));
Set<Integer> set = new HashSet<>(Arrays.asList(arr));
arr = new Integer[set.size()];
arr = set.toArray(arr);
System.out.println(Arrays.toString(arr));
}
}
输出
[1, 2, 2, 8, 8, 10, 10, 10, 11]
[1, 2, 8, 10, 11]
再说一遍:如果您正在处理非常大的集合,代码可能会效率低下,因为它会将数据扔到几个集合中。
HashSet
会自动删除重复项,因此您只需将值插入到该集合中即可。
关于java - 如何在数组中仅保留唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20821043/