您的位置:首页 > 编程语言 > Java开发

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()方法来做数据校验
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 集合 总结 笔记