夜敲人 2021-12-17 17:22 采纳率: 50%
浏览 68
已结题

list集合中removeAll()与addAll()两个方法与list.stream()求两个集合差集与和集的区别?

######碰巧用到了

问题相关代码,请

public class Test {
public static void main(String[] args) {
List list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List list2=new ArrayList();
list2.add(2);
list2.add(4);
list2.add(6);

List<Integer> list1Cha = list1.stream().filter(item -> list2.stream().noneMatch(item2 -> Objects.equals(item, item2))).collect(Collectors.toList());
List<Integer> list2Cha = list2.stream().filter(item -> list1.stream().noneMatch(item2 -> Objects.equals(item, item2))).collect(Collectors.toList());
    System.out.println(list1Cha);
    System.out.println(list2Cha);
    List<Integer> heList = list1.stream().filter(item -> list2.stream().anyMatch(item2 -> Objects.equals(item, item2))).collect(Collectors.toList());
    System.out.println(heList);
   list1.addAll(list2);
   System.out.println(list1);
    list1.removeAll(list2);
    System.out.println(list1);

}
  

}
勿粘贴截图

运行结果及报错

img


内容

List list3=new ArrayList();
    list3.addAll(list1);
    list1.removeAll(list2);
    System.out.println(list1);
    list2.removeAll(list3);
    System.out.println(list2);
    boolean b = list1.equals(list1Cha);
    System.out.println(b);
我想要达到的结果
  • 写回答

3条回答 默认 最新

  • IT-猕猴桃 2021-12-17 17:47
    关注

    一、我有些问题:
    1.集合中元素为同一元素的判定条件是什么?值相等?是同一个对象?
    2.集合和列表的区别是否清晰?集合:元素没有相同的元素;列表:允许有相同的元素。
    二、解释list的removeAll()与addAll()与list.stream()求两个集合差集与和集的区别
    1.list 的list1.removeAll(list2),从list1中删除所有在list2中存在的元素
    2.list 的list2.addAll(list2),自list1尾部添加list2中的所有元素,不会验证是否存在相同的元素
    3.通过代码实现符合你对该计算的理解,如果逻辑正确,符合你对集合计算的理解
    4.如果想使用集合计算,并不想自己写代码可以考虑Set接口的实现类

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月1日
  • 已采纳回答 3月24日
  • 创建了问题 12月17日

悬赏问题

  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事: