Java集合的学习笔记
访问集合的方式
- 迭代器访问
- 超级for循环
- 普通for循环
- 自带方法
概念:
可用于存储数量不等的对象,并可以实现常用的数据结构,如栈、队列等。除此之外Java集合还保存具有映像关系的关联数组。java集合类主要由两个接口派生而出:Collection和Map,它俩是Java集合框架的根接口。
1 2 3 4
| List:代表有序、 重复的集合; Set:代表无序、不可重复的集合; Map:代表具有映射关系的集合; Queue:代表一种队列集合实现。(Java之后)
|
java集合结构图

集合的体系结构:
接口: 是代表集合的抽象数据类型。之所以定义接口,是为,了以不同的发方式来操作集合对象
实现类:是集合接口的具体实现,从本质上讲他是可以重复使用的数据结构,ArrayList,LinkedList,HashSet,HashMap。

Collection接口:Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。Collection 接口存储一组不唯一,无序的对象。
List接口:List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。List 接口存储一组不唯一,有序(插入顺序)的对象。
Set:Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。Set 接口存储一组唯一,无序的对象
SortedSet:继承于Set保存有序的集合.
Map:Map 接口存储一组键值对象,提供key(键)到value(值)的映射。
Map.Entry:描述在一个Map中的一个元素(键/值对)。是一个Map的内部类。
SortedMap:继承于 Map,使 Key 保持在升序排列。
Enumeration:这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。
Set和List的区别:
- Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
- Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变<实现类有HashSet,TreeSet>
- List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变,<实现类有ArrayList,LinkedList,Vector>
集合存储数据的结构有那些:
堆栈 先进后出
队列 先进先出
链表
注意:
- 集合在循环访问的过程中集合不允许修改集合输入,如果发生修改就会发生修该异常