java - 查找未排序数组中的唯一元素

标签 java arrays

所以每个人都知道初学者有一个任务,你有一个排序数组,你需要找到唯一值的数量。例如,如果int []排序= {0, 0, 1, 1, 2, 2},则结果是3个唯一值。我在想 - 如果我想对未排序的数组做同样的事情怎么办?我知道我可以整理它并使我的生活更轻松 - 但仍然如此。

示例:int []numbers = {2, 7, 3, 2, 3, 7, 7}。我的第一个想法 - 我需要有 2 个 for 循环来查找 2 的所有实例,而不是 7 等等。这就是我怀疑的地方。

正如你所看到的 7 次重复,我想知道如何确保我不会数两次。更准确地说 - 我需要某种标志,以表明我之前已经计算过该元素,但我不知道如何写下来。

我该如何解决这个问题?不一定在代码中,也许只是一点提示如何做到这一点?

最佳答案

你可以使用Set来获取唯一元素

int [] numbers = {2, 7, 3, 2, 3, 7, 7}

Set<Integer> uniqueValue = new HashSet<>(Arrays.asList(numbers));

如果使用 Java 8 甚至更容易

Arrays.stream(number).distinct().toArray();

关于java - 查找未排序数组中的唯一元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50811411/

相关文章:

java - AWS Java SDK v2 应将哪个区域终端节点用于 Route 53?

Javascript array.push() 不添加而是替换它

c - 我的程序编译并运行时,它没有给我输入的输入

python:自动区分list/tuple/array和int/float

java - Xtext:将模型导出为 XMI/XML

java - RxJava/RxAndroid 检查互联网连接是否可用

java - Spring中字段的不满足依赖错误

java - 使用 == 将 Long 对象类型与原始 int 进行比较

c - 从大范围的数字中删除数字

javascript - 如何将函数应用于两个数组(数组的数组)的第 n 个元素?