List和set集合:交集、差集、合集的區別retainAll,removeAll、addAll
set 、list集合的交集(retainAll)、差集(removeAll)是沒有區別的都是一樣的.
set 、list集合的合集addAll是有區別的:set可以去重複;list不去重複
public static void main(String[] args) {
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);
System.out.println("去重複交集前1:"+set1);
System.out.println("去重複交集前2:"+set2);
result.retainAll(set2);
System.out.println("set1與set2的交集是:"+result);
result.clear();
result.addAll(set2);
System.out.println("差集前的1:"+set1);
System.out.println("差集前的2:"+set2);
result.removeAll(set1);
System.out.println("set2與set1的差集是:"+result);
result.clear();
result.addAll(set1);
result.addAll(set2);
System.out.print("set1和set2的並集:"+result);
System.err.print("set1集合並集:是去重複"+"\n");
List<Integer> list = new ArrayList<Integer>();
List<Integer> list1 = new ArrayList<Integer>(){{
add(1);
add(3);
add(5);
}};
List<Integer> list2 = new ArrayList<Integer>(){
{
add(1);
add(2);
add(3);
}};
list.clear();
list.addAll(list1);
System.out.println("去重複交集前1:"+list1);
System.out.println("去重複交集前2:"+list2);
list.retainAll(list2);
System.out.println("list1與list2的交集是:"+list);
list.clear();
list.addAll(list2);
System.out.println("差集前的1:"+list1);
System.out.println("差集前的2:"+list2);
list.removeAll(list1);
System.out.println("list2與list1的差集是:"+list);
list.clear();
list.addAll(list1);
list.addAll(list2);
System.out.print("list1和set2的並集:"+list);
System.err.print("List集合並集:是不會去重複");
}
輸出結果:
去重複交集前1:[1, 3, 5]
去重複交集前2:[1, 2, 3]
set1與set2的交集是:[1, 3]
差集前的1:[1, 3, 5]
差集前的2:[1, 2, 3]
set2與set1的差集是:[2]
set1和set2的並集:[1, 2, 3, 5]set1集合並集:是去重複
去重複交集前1:[1, 3, 5]
去重複交集前2:[1, 2, 3]
list1與list2的交集是:[1, 3]
差集前的1:[1, 3, 5]
差集前的2:[1, 2, 3]
list2與list1的差集是:[2]
list1和set2的並集:[1, 3, 5, 1, 2, 3]List集合並集:是不會去重複
相關文章
- NET 集合交集、並集、差集操作
- 【資料集合】並集、交集、差集、子集
- Python求兩個list的交集、並集、差(補)集、對稱差集的方法Python
- Python求兩個list的差集、交集與並集的方法Python
- List、Set、Map的區別
- set、List、map的區別
- JS實現並集,交集和差集JS
- java中list、set和map 的區別(轉)Java
- 利用Underscore求陣列的交集、並集和差集陣列
- Kotlin 中的集合(List中沒有了addAll())Kotlin
- MySQL實現差集(Minus)和交集(Intersect)MySql
- JS求陣列的交集、並集、差集JS陣列
- python-進階教程-對兩個集合/字典求交集、差集、並集Python
- java中Map,List與Set的區別Java
- C# 交集、差集、並集、去重C#
- java原始碼研究--List中的set和add方法區別Java原始碼
- 【Java面試題】34 List 、Map、Set 區別?Java面試題
- Linux 對比兩個文字的交集和差集(comm)Linux
- Java集合框架List,Map,Set等Java框架
- C# Linq 交集、並集、差集、去重C#
- Java 中的泛型 集合(List,Set) MapJava泛型
- Spark2 Dataset去重、差集、交集Spark
- EXPLAIN PLAN FOR 和 SET AUTOTRACE之間的差別AI
- java基礎學習之九:集合型別Set/List/MapJava型別
- 【轉】 js陣列 Array 交集 並集 差集 去重JS陣列
- Linux求兩個文字檔案的交集、差集、並集Linux
- alter system set event和set events的區別
- List集合(ArrayList-LinkedList);Set集合(HashSet-TreeSet)
- Redis的集合型別(Set)Redis型別
- List型別集合型別
- list與Set、Map區別及適用場景
- sql_intersect交集_minus差集_並集union_union allSQL
- List ,Set,Map集合與陣列互轉陣列
- Java執行緒安全的集合類:Map、List、SetJava執行緒
- mysql 中set和enum的區別MySql
- list和tuple元組的區別
- 【java】【集合】List的三個子類—ArrayList、Vector、LinkedList的區別和聯絡Java
- Java集合體系總結 Set、List、Map、QueueJava