什么是集合
存放于java.util包中,用来存放对象的容器。
集合的特性
只能存放对象,基本数据类型的会自动转换;
集合里存放的是对象的引用,对象本身还是在内存中;
可以存放不同类型、不限数量的对象;
集合的关系树
-
Iterable:是存在lang包里的集合的顶层类(不包括Map集合),内部有Iterator接口,实现该接口就可以实现迭代器;
Iterator迭代器方法:hasNext()、next()、remove();
-
Collection:是一个继承Iterable的接口;
常用方法:add()、remove()、contains()、isEmpty()、get()、size()、indeOf()、toArray();
- List:继承Collection接口,是一个有序,可重复的集合,有三个典型实现类:
1.ArrayList:数据结构是数组,查询快、增删慢、线程不安全、效率高。
2.Vector:数据结构是数组,查询快、增删慢、线程安全、效率慢,几乎淘汰。
3.LinkedList:数据结构是链表,查询慢、增删快、线程不安全、效率高。
- set:继承Collection接口,是一个无序,不可重复的集合,线程不安全、集合元素可以为null,底层是数组,能够加快查询速度。有三个典型实现类:
1.HashSet:不允许重复、不安全、不保证顺序,查询快,通过equals和hashCode判断
2.LinkedHashSet:不允许重复、不安全、保证顺序,查询稍快,底层采用哈希算法和链表算法
3.TreeSet:不允许重复、不安全、不保证顺序,对元素排序,采用红-黑树算法,适合范围查询。
- Map:不同于Collection的集合接口,表示的是两个集合之间的映射关系,即两个集合通过映射关系关联,可以视为一条数据。
常用的实现类:
HashMap:无序、不允许key重复
TreeMap:数据结构采用红黑树
LinkedHashMap:有序、链表实现
HashTable:HashMap前身,已经不用
Properties :key、value都是String类型
网友评论