我试图在用户输入一些数字时打印非重复值,它应该显示不重复的数字。我得到了所有的价值观,我的计划如下
public class Compare {
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
System.out.println("enter the string:");
int[] array = new int[7];
for (int i=0; i<array.length;i++) {
array[i] = Integer.parseInt(sc.nextLine());
}
for (int i = 0; i < array.length; i++) {
boolean found = false;
for (int j = i+1; j < array.length; j++)
if (array[i] == array[j]) {
found = true;
break;
}
if(!found)
System.out.println(array[i]);
}
}
}
答案 0 :(得分:0)
你只需改变两件事:
int j = 0
代替int j = i
&& i != j
添加到if条件中。现在您的代码可以使用。
输入:1,2,3,3,4,5,6
输出:1,2,4,5,6
答案 1 :(得分:0)
如何使用HashSet?
它只包含非重复值。
答案 2 :(得分:0)
取代boolean found
而不是int count=0
来计算数字并打印出count == 1
如图所示更改代码
for (int i = 0; i < array.length; i++) {
int count=0;
for (int j = 0; j < array.length; j++)
if (array[i] == array[j]) {
count++;
}
if(count==1)
System.out.println(array[i]);
}
输入:
1
2
2
3
3
4
5
输出:
1
4
5
答案 3 :(得分:0)
您可以使用计算值数量的地图更快地执行此操作:
public class Compare {
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
System.out.println("enter the string:");
Map<int, int> values = new HashMap<int, int>();
for (int i=0; i<7;i++) {
value = Integer.parseInt(sc.nextLine());
if (!values.contains(value)) {
values.put(value, 1);
} else {
values.put(value, values.get(value) + 1);
}
}
for (int value : values.keySet()) {
if (values.get(value) == 1) {
System.out.println(value);
}
}
}
}