我试图创建一个能够打印两组数字之间差异的方法
在这种情况下,我想区别(h1 - h2)或换句话说,打印数组h1中不在h2中的所有元素。
到目前为止,这是我提出的,只有当第一组h1的数量小于第二组h2的数量时,它才有效,但我想让它在任何给定的集合下工作。< / p>
我真的会想到你可能有的任何想法,谢谢¡
private void metodoDifference(int[] h1, int[] h2, int m, int n) {
int i = 0, j = 0;
ArrayList<Integer> arrayDifference = new ArrayList<>();
while (i < m && j < n) {
if(h1[i] < h2[j]) {
arrayDifference .add(h1[j++]);
i++;}
else if (h2[j] < h1[i]){
arrayDifference .add(h1[j++]);
}
else {
i++;
j++;
}
}
differenceText.setText(arrayDifference .toString());
}
答案 0 :(得分:1)
您似乎不需要m
或n
。我会用ArrayList.removeAll(Collection)
。然后,假设您使用的是Java 8+,则可以一步收集并装箱int[]
(s)。像,
private void metodoDifference(int[] h1, int[] h2) {
List<Integer> arrayDifference = Arrays.stream(h1).boxed().collect(Collectors.toList());
arrayDifference.removeAll(Arrays.stream(h2).boxed().collect(Collectors.toList()));
differenceText.setText(arrayDifference.toString());
}