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