Java集合类的概念 图片看不了?点击切换HTTP 返回上层
Java 的所有集合类都位于 java.util 包,其中提供了一个表示和操作对象集合的统一构架,包含大量集合接口,以及这些接口的实现类和操作它们的算法。
一个集合是一个对象,但它表示一组对象,Java 集合中实际存放的是对象的引用值,不能存放基本数据类型值。
集合框架中的接口结构如图 1 所示。
图1 集合框架中的接口结构图
实现 List 接口的常用类有 ArrayList 和 LinkedList,它们也可以容纳所有类型的对象包括 null,并且都保证元素的存储位置。
实现 Map 映射的类是 HashMap,可实现一个键到值的映射。
集合框架接口中实现类 的结构如图 2 所示。
图2 集合框架中的实现类结构图
一个集合是一个对象,但它表示一组对象,Java 集合中实际存放的是对象的引用值,不能存放基本数据类型值。
集合中的接口
集合框架是一个类库的集合,包含实现集合的接口。接口是集合的抽象数据类型,提供对集合中所表示的内容进行单独操作的可能。- Collection 接口:该接口是最基本的集合接口,一个 Collection 代表一个元素。
- List 接口:该接口实现了 Collection 接口。List 是有序集合,允许有相同的元素。使用 List 能够精确地控制每个元素插入的位置,用户能够使用索引(元素在 List 中的位置,类似于数组下标)来访问 List 中的元素,与数组类似。
- Set 接口:该接口也实现了 Collection 接口。它不能包含重复的元素,SortedSet 是按升序排列的 Set 集合。
- Map 接口:包含键值对,Map 不能包含重复的键。SortedMap 是一个按升序排列的 Map 集合。
集合框架中的接口结构如图 1 所示。
图1 集合框架中的接口结构图
接口实现类
Java 平台提供了许多数据集接口的实现类。例如实现 Set 接口的常用类有 HashSet 和 TreeSet,它们都可以容纳所有类型的对象,但是不能保证序列顺序永久不变。实现 List 接口的常用类有 ArrayList 和 LinkedList,它们也可以容纳所有类型的对象包括 null,并且都保证元素的存储位置。
实现 Map 映射的类是 HashMap,可实现一个键到值的映射。
- HashSet:为优化査询速度而设计的 Set。它是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,实现比较简单。
- TreeSet:该类不仅实现了 Set 接口,还实现了 java.util.SortedSet 接口,该实现类是一个有序的 Set,这样就能从 Set 里面提取一个有序序列。
- ArrayList:一个用数组实现的 List,能进行快速的随机访问,效率高而且实现了可变大小的数组。
- LinkedList:对顺序访问进行了优化,但随机访问的速度相对较慢。此外它还有 addFirst()、addLast()、getFirst()、getLast()、removeFirst() 和 removeLast() 等方法,能把它当成栈(Stack)或队列(Queue)来用。
集合框架接口中实现类 的结构如图 2 所示。
图2 集合框架中的实现类结构图