求交集的几种方法

 //求两个数组的交集
    private static String[] intersect(String[] arr1, String[] arr2) {
        Map<String, Boolean> map = new HashMap<String, Boolean>();
        LinkedList<String> list = new LinkedList<String>();
        for (String str : arr1) {
            if (!map.containsKey(str)) {
                map.put(str, Boolean.FALSE);
            }
        }
        for (String str : arr2) {
            if (map.containsKey(str)) {
                map.put(str, Boolean.TRUE);
            }
        }

        for (Map.Entry<String, Boolean> e : map.entrySet()) {
            if (e.getValue().equals(Boolean.TRUE)) {
                list.add(e.getKey());
            }
        }

        String[] result = {};
        return list.toArray(result);
    }
        //求两个Set集合的交集
        Set<Integer> result = new HashSet<Integer>();
        Set<Integer> set1 = new HashSet<Integer>(){{
            add(1);
            add(3);
            add(5);
        }};
        
        Set<Integer> set2 = new HashSet<Integer>(){{
            add(1);
            add(2);
            add(3);
        }};
        
        result.clear();
        result.addAll(set1);
        result.retainAll(set2);
        System.out.println("交集:"+result);
        
        result.clear();
        result.addAll(set1);
        result.removeAll(set2);
        System.out.println("差集:"+result);
        
        result.clear();
        result.addAll(set1);
        result.addAll(set2);
        System.out.println("并集:"+result);
//求两个list集合的交集 
List list1 =new ArrayList();
  list1.add("1111");
  list1.add("2222");
  list1.add("3333");
  
  List list2 =new ArrayList();
  list2.add("3333");
  list2.add("4444");
  list2.add("5555");
  
  //并集
  //list1.addAll(list2);
  //交集
  //list1.retainAll(list2);
  //差集
  //list1.removeAll(list2);
  //无重复并集
    list2.removeAll(list1);
    list1.addAll(list2);
  
  Iterator<String> it=list1.iterator();
  while (it.hasNext()) {
   System.out.println(it.next());
   
  }
  
  //System.out.println("-----------------------------------
");
  //printStr(list1);
   //使用交集工具类
   List<Integer> temp_list;

List<Integer> tea_list;
   Collection<Integer> intersection = CollectionUtils.intersection(tea_list, temp_list);
if (intersection.size() > 0) {

}
原文地址:https://www.cnblogs.com/kzfy/p/5455917.html