Java 检查2组,并将所有删除/添加的表单/添加到第一组元素
我有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
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接口的不可修改视图。听起来不错,我觉得不错