微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Java中比较两组并打印缺少的元素

如何解决如何在Java中比较两组并打印缺少的元素

如何比较两个Treeset并在Java中打印相同/不同的元素。

Set<Integer> aTreeSet = new TreeSet<>();
aTreeSet.add(3);
aTreeSet.add(1);
aTreeSet.add(2);

Set<Integer> bTreeSet = new TreeSet<>();
bTreeSet.add(3);
bTreeSet.add(5);
bTreeSet.add(4);

我希望输出为 A中缺少元素:[1,2] B中缺少元素:[5,4]

我尝试了以下无法正常工作的方法

aTreeSet.removeAll(bTreeSet);
System.out.println(aTreeSet);//[1,2]
System.out.println(bTreeSet);//[3,4,5]

请帮助我。

解决方法

您好,您可以这样做:

Set<Integer> aTreeSet = new TreeSet<>();
aTreeSet.add(3);
aTreeSet.add(1);
aTreeSet.add(2);

Set<Integer> bTreeSet = new TreeSet<>();
bTreeSet.add(3);
bTreeSet.add(5);
bTreeSet.add(4);

final Set<Integer> aTreeSetWithoutBTreeSet = aTreeSet.stream()
    .filter(tree -> !bTreeSet.contains(tree))
    .collect(Collectors.toSet());

final Set<Integer> bTreeSetWithoutATreeSet = bTreeSet.stream()
    .filter(tree -> !aTreeSet.contains(tree))
    .collect(Collectors.toSet());

System.out.println(aTreeSetWithoutBTreeSet);//[1,2]
System.out.println(bTreeSetWithoutATreeSet);//[3,4,5]

希望可以为您提供帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。