java - 打印 ArrayList 的值> 不包含在另一个 ArrayList 中>
问题描述
我正在尝试遍历两个ArrayList<ArrayList<Integer>>
命名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]
我不确定如何有效地删除重复值并仅打印唯一值。
解决方案
首先,您从时间数组中保存子列表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
.
推荐阅读
- flutter - 当我按下按钮时,我无法使用 setState() 更改我的文本值
- c# - 如何在 C# WinForms 中使用 LINQ 从 DataGridView 中选择多个字段
- java - 这个(max)函数如何使用while循环工作?
- pyspark - 如何在 PySpqrk Dataframe 中限制和分区数据
- z3 - 如何有效地断言两个大集合不相交?
- javascript - 验证是否使用 GraalVM
- docker - Dockerfile 中的命令和 docker-compose 中的命令
- python - spaCy,准备训练数据:doc.char_span 返回“无”
- pandas - 将缺失的数据添加到 Dataframe
- reactjs - 从没有 id 字段的响应中使用查询键缓存?