如何解决打印另一个ArrayList <ArrayList <〜>>中未包含的ArrayList <ArrayList <Integer >>的值
我正在尝试遍历两个分别名为ArrayList<ArrayList<Integer>>
和list
的{{1}}并打印结果,同时删除重复项。
list2
包含:
list
和[[4],[3],[0,2,1]]
包含:
list2
我当前的代码如下:
[[2,3],[0],[1],[4],[]]
对于列表位置0中的每个值,我想检查//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));
}
中的位置并打印内容而不打印列表中可能存在的值。
例如,当前我的输出如下所示,对于第三行,我希望能够仅在[2,3]中打印3,因为值2在[0,1]中。
list2
我不确定如何有效地删除重复值并仅打印唯一值。
解决方法
首先,您将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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。