java - java - 如何仅使用for循环和if在java中仅打印一次重复值
问题描述
int[] numbers = {3, 2, 5, 11, 7, 10, 11, 3, 15, 11, 17, 10, 5};
int count = 0;
boolean dup = false;
System.out.println("arrays value");
for (int n : numbers ) {
System.out.print(n +" ");
}
System.out.println("\n\nDuplicated value on arrays: ");
for (int a = 0 ; a < numbers.length ; a++ ) {
for (int b = a + 1 ; b < numbers.length ; b++ ) {
if (numbers[a] == numbers[b]) {
count = numbers[a];
dup = true;
}
}
if (dup) {
System.out.print(count +" ");
dup = false;
count = 0;
}
}
我只想打印一次重复值,每个只使用 for 循环和 if
此输出将打印 3 5 11 10 11,我如何只制作 3 5 11 10。
解决方案
为此,使用不允许重复的集合的数据结构集是明智的。这意味着无论您添加到set
唯一的相同值的数量,都将被存储。现在你可以简单地写
Set<Integer> mySet = new HashSet<>(Arrays.asList(numbers));
for(int number : mySet) {
System.out.println(number);
}
如果您只想打印重复的值而不是仅存在一次的值(您的问题并不完全清楚),您可以执行类似的操作
Set<Integer> mySet = new HashSet<>();
for(int number : numbers) {
if(!mySet.add(number)) { //the set method add(e) returns false if e is a duplicate i.e. can not be added to the set
System.out.print(duplicate + " ");
}
}
推荐阅读
- javascript - 如何在数组中的每个数组上使用函数
- c++ - 具有 const 初始值设定项列表的 C++ 对象数组
- python - 如何在列表中搜索字符串并关注它所在的特定数组
- r - 使用 r 中的元包从元回归中提取 beta、sd 和 P 值到一个不错的输出
- python - 有没有办法将两条曲线专门同时拟合到python中的多个边缘?
- javascript - 如何在 vue.js 组件中加速渲染图表
- kubernetes - Istio 安装后 Prometheus Operator 失败
- python - 在 Pandas 中操作数据框的数据
- javascript - V8 中的压缩指针实现与 JVM 的压缩 Oops 有何不同?
- python - 如何将图像添加到 Flask?