java - 如何在数组中仅保留唯一值?

标签 java arrays

我有一个包含值的数组:

[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/

相关文章:

java - 在 Java 中模拟 Excel 微积分行为以进行测试

c - 跟踪满足 C 中某些要求的数组索引

Java - 从类中调用私有(private)数组列表

java - SimpleDateFormat 中应该采用什么格式来打印这样的日期 - 01-JUN-20 08.55.27.577984000 AM UTC?

java - WinCrypt RSA 与 Java org.bouncycaSTLe

C数组结构函数指针

c++ - 为什么用户定义类型的数组必须调用其默认构造函数?

php - 获取一个数组的键,该键位于另一个数组内并包含值

php多维数组去除重复

java - 如何在 SWT、Java 中管理多个闪屏