JDK1.8
首先,set1中有值, set2中无值
import com.alibaba.fastjson.JSON; import com.google.common.collect.Sets; import java.util.*; public class ListTest { public static void main(String[] args) throws Exception { Set<Long> set1 = new HashSet<>(); set1.add(1L); set1.add(2L); Set<Long> set2 = new HashSet<>(); Sets.SetView<Long> intersection = Sets.intersection(set1, set2); System.out.println(JSON.toJSONString(intersection)); System.out.println(JSON.toJSONString(set1)); System.out.println(JSON.toJSONString(set2)); set1.retainAll(set2); System.out.println(JSON.toJSONString(set1)); System.out.println(JSON.toJSONString(set2)); } }
结果:
再来一次,set2中放值
public static void main(String[] args) throws Exception { Set<Long> set1 = new HashSet<>(); set1.add(1L); set1.add(2L); Set<Long> set2 = new HashSet<>(); set2.add(1L); Sets.SetView<Long> intersection = Sets.intersection(set1, set2); System.out.println(JSON.toJSONString(intersection)); System.out.println(JSON.toJSONString(set1)); System.out.println(JSON.toJSONString(set2)); set1.retainAll(set2); System.out.println(JSON.toJSONString(set1)); System.out.println(JSON.toJSONString(set2)); }
结果如下