java常用集合类
java语言中常用的集合类有List、Set、Map三种,三种数据类型都实现了collection接口,三种集合类的使用各有不同,本文做一下简单的说明
List(列表)
List允许元素重复、有放入顺序
List集合类有三种:LinkedList、ArrayList、Vector
- LinkedList
LikedList是基于链表实现的一种列表类,允许元素重复,有放入顺序,增删较为快捷,查找需要遍历全部元素,时间复杂度为O(n)。 - ArrayList
ArrayList也就是动态数组,以数组实现的列表类,允许元素重复,有放入顺序。 - Vector
Vector跟ArrayList的实现原理一致。两者最大的区别在于线程安全的问题,ArrayList是非线程安全的,不包含访问加锁机制,效率较高;Vector是线程安全的,同一时间只允许一个线程访问,效率较低。
Set(集)
Set不允许元素重复、无放入顺序,但是位置由Hashcode决定
Set主要有两种形式的实现:HashSet、TreeSet
HashSet
HashSet是无序的集合,可以保存nullTreeSet
TreeSet是无序集合,但是有排序的功能,不可以保存null
Map(映射)
Map无放入顺序,按键值对存储,关键字不允许重复
Map主要实现有HashMap、TreeMap
- HashMap
可以存储null - TreeMap
不可以存储null,可以根据关键字排序