我试图迭代两个名为list和list2的list和list2,并在删除重复项的同时打印结果。
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]我不知道如何有效地删除重复的值,只打印唯一的值。
发布于 2020-10-05 22:01:35
首先,将子列表从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。
https://stackoverflow.com/questions/64215459
复制相似问题