求交集的几种方法
2016-05-03 17:57
155 查看
//求两个数组的交集 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("-----------------------------------\n"); //printStr(list1);
//使用交集工具类 List<Integer> temp_list; List<Integer> tea_list;
Collection<Integer> intersection = CollectionUtils.intersection(tea_list, temp_list); if (intersection.size() > 0) { }
相关文章推荐
- 事件监听器——计算器为例
- mac下用户用户组命令行操作
- 【VS开发】使用CTabView分割多页卡窗口
- 一道题识别不靠谱的程序员
- 1、面向对象和面向过程的区别
- 习惯重于方法 - 书籍
- 使用WebDriver的过程中遇到的一个Bug
- 二叉树前序,中序,后序遍历(递归)
- ListView 设置高度为刚好能包裹子元素
- 打字测试
- python数字图像处理:直方图与均衡化
- spark发行三板斧之三
- 只让输入数字、字母、中文的输入框
- Centos安装php高版本
- 2、开发流程-Web为主的HyBrid开发
- [Android] Service全面总结
- 学生信息系统知识点1
- hiho#1128 : 二分·二分查找
- css高度100%布局
- Android 拍照强制横屏解决...