gpt4 book ai didi

java - 在java中获得两组之间对称差异的最佳方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 20:54:49 26 4
gpt4 key购买 nike

我想知道是否有一种快速/干净的方法来获得两组之间的对称差异?

我有:

Set<String> s1 = new HashSet<String>();
s1.add("a");
s1.add("b");
s1.add("c");

Set<String> s2 = new HashSet<String>();
s2.add("b");

我需要类似的东西:

Set<String> diff = Something.diff(s1, s2);
// diff would contain ["a", "c"]

只是为了澄清我需要对称差异。

最佳答案

您可以使用 Google Guava 中的一些功能图书馆(真的很棒,我强烈推荐!):

Sets.difference(s1, s2);
Sets.symmetricDifference(s1, s2);

Javadocs 用于 difference()symmetricDifference()

symmetricDifference() 完全符合 what you are asking for ,但 difference() 通常也很有帮助。

这两种方法都返回实时 View ,但您可以例如在结果集上调用 .immutableCopy() 以获得不变集。如果您不想要 View ,但需要一个可以修改的集合实例,请调用 .copyInto(s3)。见 SetView对于这些方法。

关于java - 在java中获得两组之间对称差异的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8064570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com