Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查2组,并将所有删除/添加的表单/添加到第一组元素_Java_Set - Fatal编程技术网

Java 检查2组,并将所有删除/添加的表单/添加到第一组元素

Java 检查2组,并将所有删除/添加的表单/添加到第一组元素,java,set,Java,Set,我有2套,我需要等于这套,并得到删除和添加元素。我做到了 public static void main(String[] args) { System.out.println("start"); Set<String> setDestOrigin = new HashSet<>(); Set<String> setLocalOrigin = new HashSet<>(); set

我有2套,我需要等于这套,并得到删除和添加元素。我做到了

public static void main(String[] args) {
        System.out.println("start");
        Set<String> setDestOrigin = new HashSet<>();
        Set<String> setLocalOrigin = new HashSet<>();

        setDestOrigin.add("test1");
        setDestOrigin.add("test2");
        setDestOrigin.add("test3");
        setDestOrigin.add("test7");
        setDestOrigin.add("test5");

        setLocalOrigin.add("test1");
        setLocalOrigin.add("test2");
        setLocalOrigin.add("test3");
        setLocalOrigin.add("test4");
        setLocalOrigin.add("test5");


        Set<String> deleted = new HashSet<>(setLocalOrigin);
        deleted.removeAll(setDestOrigin);

        Set<String> added = new HashSet<>(setDestOrigin);
        added.removeAll(setLocalOrigin);

        System.out.println("finish");
    }
publicstaticvoidmain(字符串[]args){
系统输出打印项次(“开始”);
Set setDestOrigin=new HashSet();
Set setLocalOrigin=newhashset();
setDestOrigin.add(“test1”);
setDestOrigin.add(“test2”);
setDestOrigin.add(“test3”);
setDestOrigin.add(“test7”);
setDestOrigin.add(“test5”);
setLocalOrigin.add(“test1”);
setLocalOrigin.add(“test2”);
setLocalOrigin.add(“test3”);
setLocalOrigin.add(“test4”);
setLocalOrigin.add(“test5”);
Set deleted=新哈希集(setLocalOrigin);
删除。删除所有(setDestOrigin);
Set added=新哈希集(setDestOrigin);
添加.removeAll(setLocalOrigin);
系统输出打印(“完成”);
}
deleted
set中,我已将所有元素从
setDestOrigin
added
set中,我已将所有元素添加到
setDestOrigin


有没有一种方法可以让你做同样的事情更简单?

如果你有番石榴,你可以使用它,它会返回两组之间差异的视图。这可能比复制和删除元素更有效。它们还具有用于初始化集合的方便实用程序:

Set<String> setDestOrigin = ImmutableSet.of("test1", "test2", "test3", "test7", "test5");
Set<String> setLocalOrigin = ImmutableSet.of("test1", "test2", "test3", "test4", "test5");

Set<String> deleted = Sets.difference(setLocalOrigin, setDestOrigin);
Set<String> added = Sets.difference(setDestOrigin, setLocalOrigin);
Set setDestOrigin=ImmutableSet.of(“test1”、“test2”、“test3”、“test7”、“test5”);
Set setLocalOrigin=ImmutableSet.of(“test1”、“test2”、“test3”、“test4”、“test5”);
Set deleted=Sets.difference(setLocalOrigin,setDestOrigin);
Set added=Sets.difference(setDestOrigin,setLocalOrigin);

如果您有番石榴,您可以使用,它返回两组之间差异的视图。这可能比复制和删除元素更有效。它们还具有用于初始化集合的方便实用程序:

Set<String> setDestOrigin = ImmutableSet.of("test1", "test2", "test3", "test7", "test5");
Set<String> setLocalOrigin = ImmutableSet.of("test1", "test2", "test3", "test4", "test5");

Set<String> deleted = Sets.difference(setLocalOrigin, setDestOrigin);
Set<String> added = Sets.difference(setDestOrigin, setLocalOrigin);
Set setDestOrigin=ImmutableSet.of(“test1”、“test2”、“test3”、“test7”、“test5”);
Set setLocalOrigin=ImmutableSet.of(“test1”、“test2”、“test3”、“test4”、“test5”);
Set deleted=Sets.difference(setLocalOrigin,setDestOrigin);
Set added=Sets.difference(setDestOrigin,setLocalOrigin);

您的方法看起来是正确的。 你也可以试试番石榴的Sets.difference(set1,set2)。
它返回一个实现Set接口的不可修改视图。

您的方法看起来是正确的。 你也可以试试番石榴的Sets.difference(set1,set2)。
它返回一个实现Set接口的不可修改视图。

听起来不错,我觉得不错