Java常用集合总结笔记
2017-07-14 08:52
274 查看
集合
一、Collection(单列集合)
1.List(有序(存储与取出的顺序一致),可重复)
1.1. ArrayList
底层数组实现,查询快,增删慢,线程不安全,效率高。
1.2.Vector
底层数据结构是数组实现,查询快,增删慢,线程安全,效率低。
1.3. LinkedList
底层数据结构是链表实现,查询慢,增删快,线程不安全,效率高。
2.Set(无序(存储与取出的顺序不一致),唯一)
2.1. HashSet
底层数据结构由哈希表(实际上是一个 HashMap 实例)实现,它不保证 set 的迭代顺序。允许使用
null 元素,
依赖 hashCode()和equals()方法来区分存入的元素是否相同,来保证存储元素唯一性。
这两个方法(可自动生成)的执行顺序:
首先判断元素的hashCode()值是否相同
否:直接存储到集合
是:继续执行equals(),看其返回值
true:说明元素相同,就不存储
false:说明元素不同,就存储到集合
2.1.1. LinkedHashSet
底层数据结构由哈希表和链表组成。
哈希表保证元素的唯一性,链表保证元素有序(存储和取出一致)。
2.2. TreeSet
底层数据结构是红黑树。(是一种自平衡的二叉树结构)
元素的唯一性:
依靠元素比较的返回值是否为0来决定
元素的有序性:
1.自然排序(元素具备比较性)
无参构造(new TreeSet<T>())使用的是自然排序,让元素所属的类实现自然排序接口,
底层用CompareTo()方法(Comparable接口)来做数据校验
2.比较器排序(集合具备比较性)
构造方法(new TreeSet<T>(Comparator comparator))接收一个比较器接口(其实是该接口的子类对象),
底层使用Compare()方法来做数据校验
二、Map(双列集合)
A:Map集合的数据结构仅仅针对键有效,和值无关。
B:存储的是键值对元素,键是唯一的,值可重复
1. HashMap
底层数据结构由哈希表实现,它不保证 set 的迭代顺序。允许使用 null 元素,
依赖hashCode()和equals()方法来区分存入的元素是否相同,来保证存储元素唯一性。
这两个方法(可自动生成)的执行顺序:
首先判断元素的hashCode()值是否相同
否:直接存储到集合
是:继续执行equals(),看其返回值
true:说明元素相同,就不存储
false:说明元素不同,就存储到集合
1.1. LInkedHashMap
底层数据结构由哈希表和链表组成。
哈希表保证元素的唯一性,链表保证元素有序(存储和取出一致)。
2. Hashtable
Hashtable与HashMap的区别
Hashtable:线程安全,效率低,不允许null键和null值
HashMap:线程不安全,效率高,允许null键和null值
3. TreeMap
底层数据结构是红黑树。(是一种自平衡的二叉树结构)
元素的唯一性:
依靠元素比较的返回值是否为0来决定
元素的有序性:
1.自然排序(元素具备比较性)
无参构造(new TreeSet<T>())使用的是自然排序,让元素所属的类实现自然排序接口,
底层用CompareTo()方法(Comparable接口)来做数据校验
2.比较器排序(集合具备比较性)
构造方法(new TreeSet<T>(Comparator comparator))接收一个比较器接口(其实是该接口的子类对象),
底层使用Compare()方法来做数据校验
一、Collection(单列集合)
1.List(有序(存储与取出的顺序一致),可重复)
1.1. ArrayList
底层数组实现,查询快,增删慢,线程不安全,效率高。
1.2.Vector
底层数据结构是数组实现,查询快,增删慢,线程安全,效率低。
1.3. LinkedList
底层数据结构是链表实现,查询慢,增删快,线程不安全,效率高。
2.Set(无序(存储与取出的顺序不一致),唯一)
2.1. HashSet
底层数据结构由哈希表(实际上是一个 HashMap 实例)实现,它不保证 set 的迭代顺序。允许使用
null 元素,
依赖 hashCode()和equals()方法来区分存入的元素是否相同,来保证存储元素唯一性。
这两个方法(可自动生成)的执行顺序:
首先判断元素的hashCode()值是否相同
否:直接存储到集合
是:继续执行equals(),看其返回值
true:说明元素相同,就不存储
false:说明元素不同,就存储到集合
2.1.1. LinkedHashSet
底层数据结构由哈希表和链表组成。
哈希表保证元素的唯一性,链表保证元素有序(存储和取出一致)。
2.2. TreeSet
底层数据结构是红黑树。(是一种自平衡的二叉树结构)
元素的唯一性:
依靠元素比较的返回值是否为0来决定
元素的有序性:
1.自然排序(元素具备比较性)
无参构造(new TreeSet<T>())使用的是自然排序,让元素所属的类实现自然排序接口,
底层用CompareTo()方法(Comparable接口)来做数据校验
2.比较器排序(集合具备比较性)
构造方法(new TreeSet<T>(Comparator comparator))接收一个比较器接口(其实是该接口的子类对象),
底层使用Compare()方法来做数据校验
二、Map(双列集合)
A:Map集合的数据结构仅仅针对键有效,和值无关。
B:存储的是键值对元素,键是唯一的,值可重复
1. HashMap
底层数据结构由哈希表实现,它不保证 set 的迭代顺序。允许使用 null 元素,
依赖hashCode()和equals()方法来区分存入的元素是否相同,来保证存储元素唯一性。
这两个方法(可自动生成)的执行顺序:
首先判断元素的hashCode()值是否相同
否:直接存储到集合
是:继续执行equals(),看其返回值
true:说明元素相同,就不存储
false:说明元素不同,就存储到集合
1.1. LInkedHashMap
底层数据结构由哈希表和链表组成。
哈希表保证元素的唯一性,链表保证元素有序(存储和取出一致)。
2. Hashtable
Hashtable与HashMap的区别
Hashtable:线程安全,效率低,不允许null键和null值
HashMap:线程不安全,效率高,允许null键和null值
3. TreeMap
底层数据结构是红黑树。(是一种自平衡的二叉树结构)
元素的唯一性:
依靠元素比较的返回值是否为0来决定
元素的有序性:
1.自然排序(元素具备比较性)
无参构造(new TreeSet<T>())使用的是自然排序,让元素所属的类实现自然排序接口,
底层用CompareTo()方法(Comparable接口)来做数据校验
2.比较器排序(集合具备比较性)
构造方法(new TreeSet<T>(Comparator comparator))接收一个比较器接口(其实是该接口的子类对象),
底层使用Compare()方法来做数据校验
相关文章推荐
- Java高级个人笔记(java常用集合总结)
- Java分布式应用学习笔记04JDK的并发包的集合总结
- 《黑马程序员》java笔记->集合框架集合大总结
- 黑马程序员————Java基础日常笔记---对集合的理解与总结二
- java常用集合总结
- Java 笔记之 ---集合总结
- 黑马程序员 常用对象API--集合框架笔记总结
- Java常用集合总结
- java常用容器(集合)的总结
- java常用集合总结
- java常用集合总结
- 黑马程序员_JavaAPI——集合框架笔记总结
- JAVA 常用集合接口List、Set、Map总结
- java常用集合总结
- java笔记总结_05_常用类
- Java学习笔记44:常用集合使用
- 黑马程序员——Java学习笔记之11——“Collection集合”总结
- Java常用集合总结
- Java基础知识强化之集合框架笔记72:集合特点和数据结构总结
- java常用容器(集合)的总结