打印不包含在另一个 ArrayList<ArrayList<~>> 中的 ArrayList<ArrayList<Integer>> 的值
Print values of ArrayList<ArrayList<Integer>> that are not contained in another ArrayList<ArrayList<~>>
我正在尝试遍历两个名为 list
和 list2
的 ArrayList<ArrayList<Integer>>
并在删除重复项的同时打印结果。
list
包含:
[[4], [3], [0,2,1]]
和list2
包含:
[[2,3], [0], [1], [4], []]
我当前的代码如下:
//size=list.size();
Integer temp1;
for(int num=0;num<size;num++){
System.out.print(list.get(num)+" ");
temp1=list.get(num).get(0);
System.out.println(list2.get(temp1));
}
对于列表位置 0 中的每个值,我想检查 list2
中的位置并打印内容而不打印可能在列表中的值。
例如,目前我的输出如下所示,对于第三行,我希望能够仅打印 [2,3] 中的 3,因为值 2 在 [0,2,1].
中
[4] []
[3] [4]
[0, 2, 1] [2,3]
我不确定如何有效地删除重复值并只打印唯一值。
首先,您将 list
中的子列表保存在时间数组中,然后将其打印出来:
ArrayList<Integer> temp;
temp = list.get(num);
System.out.print(list.get(num)+" ");
获取 temp1
并从 list2
获取子列表以便能够比较和删除重复项:
temp1=list.get(num).get(0);
ArrayList<Integer> list2sub = list2.get(temp1);
遍历 temp
列表并删除 list2sub
中的所有重复项并打印 list2sub
输出:
for (Integer element : temp) {
list2sub.remove(element);
}
System.out.println(list2sub);
最后它应该看起来像这样:
int size=list.size();
Integer temp1;
for(int num=0;num<size;num++){
ArrayList<Integer> temp;
temp = list.get(num);
System.out.print(list.get(num)+" ");
temp1=list.get(num).get(0);
ArrayList<Integer> list2sub = list2.get(temp1);
for (Integer element : temp) {
list2sub.remove(element);
}
System.out.println(list2sub);
}
输出是这样的:
[4] []
[3] [4]
[0, 2, 1] [3]
如果不允许更改子列表中的值,即执行 .remove
,那么您只需将其放入另一个 temp
数组列表并打印出来,而不是修改 list2sub
。
我正在尝试遍历两个名为 list
和 list2
的 ArrayList<ArrayList<Integer>>
并在删除重复项的同时打印结果。
list
包含:
[[4], [3], [0,2,1]]
和list2
包含:
[[2,3], [0], [1], [4], []]
我当前的代码如下:
//size=list.size();
Integer temp1;
for(int num=0;num<size;num++){
System.out.print(list.get(num)+" ");
temp1=list.get(num).get(0);
System.out.println(list2.get(temp1));
}
对于列表位置 0 中的每个值,我想检查 list2
中的位置并打印内容而不打印可能在列表中的值。
例如,目前我的输出如下所示,对于第三行,我希望能够仅打印 [2,3] 中的 3,因为值 2 在 [0,2,1].
[4] []
[3] [4]
[0, 2, 1] [2,3]
我不确定如何有效地删除重复值并只打印唯一值。
首先,您将 list
中的子列表保存在时间数组中,然后将其打印出来:
ArrayList<Integer> temp;
temp = list.get(num);
System.out.print(list.get(num)+" ");
获取 temp1
并从 list2
获取子列表以便能够比较和删除重复项:
temp1=list.get(num).get(0);
ArrayList<Integer> list2sub = list2.get(temp1);
遍历 temp
列表并删除 list2sub
中的所有重复项并打印 list2sub
输出:
for (Integer element : temp) {
list2sub.remove(element);
}
System.out.println(list2sub);
最后它应该看起来像这样:
int size=list.size();
Integer temp1;
for(int num=0;num<size;num++){
ArrayList<Integer> temp;
temp = list.get(num);
System.out.print(list.get(num)+" ");
temp1=list.get(num).get(0);
ArrayList<Integer> list2sub = list2.get(temp1);
for (Integer element : temp) {
list2sub.remove(element);
}
System.out.println(list2sub);
}
输出是这样的:
[4] []
[3] [4]
[0, 2, 1] [3]
如果不允许更改子列表中的值,即执行 .remove
,那么您只需将其放入另一个 temp
数组列表并打印出来,而不是修改 list2sub
。