首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打印不包含在另一个ArrayList<ArrayList<Integer>>中的ArrayList<ArrayList<~>>值

打印不包含在另一个ArrayList<ArrayList<Integer>>中的ArrayList<ArrayList<~>>值
EN

Stack Overflow用户
提问于 2020-10-05 20:04:55
回答 1查看 67关注 0票数 0

我试图迭代两个名为listlist2listlist2,并在删除重复项的同时打印结果。

list包含:

代码语言:javascript
运行
复制
[[4], [3], [0,2,1]]

list2包含:

代码语言:javascript
运行
复制
[[2,3], [0], [1], [4], []]

我的当前代码如下:

代码语言:javascript
运行
复制
//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。

代码语言:javascript
运行
复制
[4] []
[3] [4]
[0, 2, 1] [2,3]

我不知道如何有效地删除重复的值,只打印唯一的值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 22:01:35

首先,将子列表从list中保存到时态数组中,并将其打印出来:

代码语言:javascript
运行
复制
ArrayList<Integer> temp;
temp = list.get(num);
System.out.print(list.get(num)+" ");

temp1并从list2获取子列表,以便能够比较和删除重复项:

代码语言:javascript
运行
复制
temp1=list.get(num).get(0);
ArrayList<Integer> list2sub = list2.get(temp1);

temp列表上迭代,从list2sub中删除所有重复项,并打印出list2sub

代码语言:javascript
运行
复制
for (Integer element : temp) {
    list2sub.remove(element);
}
System.out.println(list2sub);

最后,它应该是这样的:

代码语言:javascript
运行
复制
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);
}

产出如下:

代码语言:javascript
运行
复制
[4] []
[3] [4]
[0, 2, 1] [3]

如果不允许更改子列表中的值,即执行.remove,则只需将其放到另一个temp数组列表中,然后打印出来,而不是修改list2sub

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64215459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档