集合-- 交 、 并 、 差 集(LinkedList、HashSet)

 1 package Aug11.Collection;
 2
 3 import java.util.HashSet;
 4 import java.util.LinkedList;
 5 import java.util.Set;
 6
 7 public class Test {
 8
 9     public static void main(String[] args) {
10         Set<Integer> result = new HashSet<Integer>();
11         Set<Integer> set1 = new HashSet<Integer>() {
12             {
13                 add(1);
14                 add(3);
15                 add(5);
16                 add(4);
17             }
18         };
19
20         Set<Integer> set2 = new HashSet<Integer>() {
21             {
22                 add(1);
23                 add(2);
24                 add(3);
25                 add(6);
26             }
27         };
28
29         result.clear();
30         result.addAll(set1);
31         result.retainAll(set2);
32         System.out.println("交集:" + result);
33
34         Set<Integer> temp = new HashSet<Integer>();  //临时集合存放交集
35         temp.addAll(result);
36
37         result.clear();
38         result.addAll(set1);
39         result.addAll(set2);
40         result.removeAll(temp);   //并集减去交集
41         System.out.println("差集:" + result);
42
43         result.clear();
44         result.addAll(set1);
45         result.addAll(set2);
46         System.out.println("并集:" + result);
47
48
49         System.out.println("----------------------------------------");
50
51
52
53         LinkedList <Integer> result1 = new LinkedList<Integer> ();
54         LinkedList <Integer> list1 = new LinkedList<Integer>();
55         list1.add(1);
56         list1.add(3);
57         list1.add(5);
58         list1.add(4);
59
60         LinkedList <Integer> list2 = new LinkedList<Integer> ();
61         list2.add(1);
62         list2.add(2);
63         list2.add(3);
64         list2.add(6);
65
66
67
68         result1.clear();
69         result1.addAll(list1);
70         result1.retainAll(list2);
71         System.out.println("交集:" + result1);
72
73         LinkedList <Integer> temp1 = new LinkedList<Integer> (); //临时集合存放交集
74         temp1.addAll(result1);
75         result1.clear();
76         result1.addAll(list1);
77         result1.addAll(list2);
78         result1.removeAll(temp1);  //并集减去交集
79         System.out.println("差集:" + result1);
80
81
82         result1.clear();
83         result1.addAll(list1);
84         result1.removeAll(list2);
85         result1.addAll(list2);
86         System.out.println("并集:" + result1);
87
88
89     }
90
91 }

两种集合 并集 有些 区别。

集合-- 交 、 并 、 差 集(LinkedList、HashSet)

时间: 2024-11-09 04:42:16

集合-- 交 、 并 、 差 集(LinkedList、HashSet)的相关文章

安卓 ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用

java的集合就那么几种 总体为:List,Set,Map (都是接口由其子类去实现具体的方法) ArrayList,LinkedList,Vector都属于List List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引)  |-- ArrayList:底层的数据结构是数组结构,特点是:查询很快,增 删 稍微慢点,线程不同步 |-- LinkedList:底层使用的是链表数据结构,特点是:增 删很快,查询慢. |--Vector:底层是数组数据结构,线程同步,被ArrayList

Java集合框架之二:LinkedList源码解析

版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! LinkedList底层是通过双向循环链表来实现的,其结构如下图所示: 链表的组成元素我们称之为节点,节点由三部分组成:前一个节点的引用地址.数据.后一个节点的引用地址.LinkedList的Head节点不包含数据,每一个节点对应一个Entry对象.下面我们通过源码来分析LinkedList的实现原理. 1.Entry类源码: 1 private static class Entry<E> { 2 E element; 3 Entr

Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

【Java集合源码剖析】LinkedList源码剖析

转载请注明出处:http://blog.csdn.net/ns_code/article/details/35787253 LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈.队列和双端队列来使用. LinkedList同样是非线程安全的,只在单线程下适合使用. LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆. Linked

Java集合详解2:LinkedList和Queue

Java集合详解2:LinkedList和Queue 今天我们来探索一下LinkedList和Queue,以及Stack的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 文章首发于我的个人博客: https://h2pl.github.io/2018/05/09/collection2 更多关于Java后端学习的内容请到我的CSDN博客上查看:https://blog.csdn.net/a724888 我的个

java集合(ArrayList,Vector,LinkedList,HashSet,TreeSet的功能详解)

说起集合,我们会潜意识里想到另外一个与之相近的名词——数组,OK!两者确实有相似之处,但也正是这点才是我们应该注意的地方,下面简单列出了两者的区别(具体功能的不同学习这篇文章后就会明白了): 数组 长度固定 既可以存储基本数据类型,也能存储引用数据类型 一个数组中的元素类型必一致 集合 长度可变 只能存储引用数据类型 一个集合中的元素类型可以是任意的引用类型 一.集合概述 Collection<E> 父接口 List<E> 子接口 ArrayList<E>类 Vecto

【TOJ 1743】集合运算(set集合并、交、差的运用)

Description 给定两个集合A和B的所有元素,计算它们的交.并.差集. Input 输入数据有多组,第一行为数据的组数T,接下来有2T行,每组数据占2行,每行有若干个整数,第一行的所有整数构成集合A,第二行的所有整数构成集合B,分别用空格分隔.A和B最多分别不超过100个元素. Output 输出A.B的交.并.差集中的所有元素(以递增顺序).每个集合占一行,数据元素之间用空格分隔. Sample Input  10 1 2 3 4 5 6 7 8 83 6 8 9 Sample Out

python 集合关系运算交,差 day14

去重并创建集合(无序) python_1 = ['1','2','3'] linux_1 = ['1','2'] #python_and_linux_1 = [] #for p_name in python_1: # if p_name in linux_1: # python_and_linux_1.append(p_name) #print(python_and_linux_1) p_s = set(python_1) print(p_s) 求交集 python_1 = ['1','2','

求集合的并,交,差集合(有序单链表的实践)

//说实话我把差集想的太复杂了  考虑了许多没用的 //最后却用了一种简单的方法解决了 #include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef struct node{ //char data;// int count; int data; struct node *next; } lnode,*linklist; linklist creat() { linklist l,p,r,s; int n; i