int[][] arr1 = new int[][] {{1,2,1},{9,7,2},{7,3,6}};
int arr2[][] = new int[][] {{2,6,8},{0,1,7},{7,2,0},{8,3}};
boolean duplicate= false;
for(int i=0;i<arr1.length;i++) {
for(int j=0;j<arr1[i].length;j++) {
int transpose = 0;
transpose = arr1[i][j];
for(int k=0;k<arr2.length;k++) {
duplicate = false;
for(int l=0;l<arr2[k].length;l++) {
if(transpose == arr2[k][l]) {
System.out.println(transpose);
duplicate = true;
break;
}
}
if(duplicate)
break;
}
}
}
}
}
我试着不使用任何快捷方式,只使用for循环和if语句逻辑地打印常见元素。逻辑是,在数组1中,我迭代每个元素,并检查它是否在数组2中,如果它在那里,我们必须在控制台中打印它。但问题是数组1中的元素“1,2,7”迭代了2次并打印了2次。
得到这个输出:1 2 1 7 2 7 3 6
预期输出:1 2 7 3 6
在这里,我必须停止迭代两次,因为一旦打印出来就已经检查过了。注意:我只想回答循环语句和条件语句没有散列集或快捷方式。
2条答案
按热度按时间qv7cva1a1#
你需要为每个 array 执行一个 loop,然后为每个 sub-array 执行一个 loop。
此外,我在这里使用 * Set * 来防止重复值。
输出
理想情况下,只需将每个值添加到 * List * 中,首先检查 List。
hvvq6cgz2#