Java集合
集合API
在我们的开发实践中,经常需要保存一些变长的数据集合,于是,我们需要一些能够动态增长长度的容器来保存我们的数据。而我们需要对数据的保存的逻辑可能各种各样,于是就有了各种各样的数据结构。Java中对于各种数据结构的实现,就是我们用到的集合。
Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中。
Collection 接口-定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。
Set 中的数据对象不可以重复。
List 中的数据对象有顺序(添加顺序)且可以重复。
List接口
List继承了Collection接口。有三个子类:
ArrayList :数组列表,数据采用数组方式存储。
ArrayList的常用方法:
LinkedList :链表
LinkedLIst的常用方法:
Vector :数组列表,添加同步锁,线程安全的
Set接口
Set接口继承了Collection接口。Set中所存储的元素是不重复的,但是是无序的, Set中的元素是没有索引的。
Set接口有两个子类:
HashSet:HashSet类中的元素不能重复TreeSet :可以给Set集合中的元素进行指定方式的排序。存储的对象必须实现Comparable接口。
Map接口
将键映射到值的对象一个映射不能包含重复的键每个键最多只能映射到一个值。
Map接口常用方法:
HashMap:HashMap中元素的key值不能重复, 排列顺序是不固定的,可以存储一个为null的键。
TreeMap:TreeMap中所有的元素都保持着某种固定的顺序,如果需要得到一个有序的Map就应该使用TreeMap,key值所在类必须实现Comparable接口。(适用于按自然顺序或自定义顺序遍历键(key)。TreeMap根据key值排序,key值需要实现Comparable接口, 重写compareTo方法。TreeMap根据compareTo的逻辑,对key进行排序。键是红黑树结构,可以保证键的排序和唯一性
)
HashTable:实现了同步,但不能存储为null的键。
Collections类
Collections是集合类的工具类,与数组的工具类Arrays类似。