在面试的过程中,忘记了List中还可以进行交并集运算,这也是常见的数据问题啊,这也是常见的数据结构问题---集合,面试的过程中一直没有想到这种数据结构

  java中API中已经集成了并交集的运算。

  代码:(from http://pengyan5945.iteye.com/blog/1311597)

  交集的API:使用retainAll即可

  并集的API:先removeAll 再addAll

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set; public class ListTest {
public static void main(String[] args) {
testIntersection();
testUnion();
testIntersectionSet();
}
private static void testIntersection() {
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list1.add("abc"); list2.add("abc");
list1.add("123"); list2.add("123");
list1.add("ABC");
list2.add("XYZ");
list1.removeAll(list2);
list1.addAll(list2);
System.out.println("并集元素个数是:" + list1.size()); }
private static void testIntersectionSet() {
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list1.add("abc"); list2.add("abc");
list1.add("123"); list2.add("123");
list1.add("ABC");
list2.add("XYZ");
Set<String> set =new HashSet<String>();
addList2Set(set, list1);
addList2Set(set, list2);
System.out.println("并集元素个数是:" + set.size()); }
private static void testUnion() {
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
list1.add("abc"); list2.add("abc");
list1.add("123"); list2.add("123");
list1.add("ABC");
list2.add("XYZ");
list1.retainAll(list2);
System.out.println("交集元素个数是:"+list1.size());
}
private static void addList2Set(Set<String> set,List<String> list){
for (String str : list) {
set.add(str);
}
}
}

最新文章

  1. c++学习笔记——智能指针
  2. 【MPI学习5】MPI并行程序设计模式:组通信MPI程序设计
  3. php 循环向&lt;select&gt;添加选项
  4. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇01:播放序列动画》
  5. 《PHP扩展开发及内核应用》
  6. IT软件开发 书籍汇总
  7. *.pro、*.pri、*.prf、*.prl等四种文件
  8. 代码实现Layout android:layout_alignParentRight
  9. 移动端Click300毫秒点击延迟的来龙去脉(转)
  10. LeetCode 217. Contains Duplicate (包含重复项)
  11. LintCode主元素
  12. CentOS7下解决yum install mysql-server 异常:No package mysql-server available.问题
  13. React Native之获取通讯录信息并实现类通讯录列表(ios android)
  14. 【BZOJ5287】[HNOI2018]毒瘤(动态规划,容斥)
  15. ESXi内虚拟机带快照与不带快照的情况下简单性能对比.
  16. D. Duff in Beach
  17. luogu1110[ZJOI2007]报表统计
  18. spring boot 入门 使用spring.profiles.active来分区配置
  19. 界面设计-Edit控件的Style设置
  20. swift3.0 简单直播和简单网络音乐播放器

热门文章

  1. AspxGridView 客户端点击获取对应的列值
  2. Github中进行fork后,原仓库更新了如何与原仓库同步
  3. c++踩坑大法好 赋值和指针的区别
  4. HTML /和./的区别 - Web开发
  5. react 实现圆环进度条
  6. go语言 实现对称加密解密算法
  7. PHP pdf 转 图片
  8. 素问 - 使用 PE、PB 做估值
  9. 苹果cms10 官方QQ微信防红防封代码
  10. 通过属性选择器找元素,可以通过$(__).length是否为0来判断是否找到了元素