集合
集合就是有个容器,专门用来存储Java对象。
Java 集合按照存储结构可以分为两大类。单列集合Collection和双列集合Map。
Collection:
单列集合的根接口,用于存储一些的符合某种规则的元素,他有两个重要的子接口,分别是List和Set。其中List的特点是元素有序、元素可重复,又通过索引获取到元素。Set的特点是元素无序且不可以重复,不可以通过索引获取到对象。
Map:
双列集合列的根接口,用于存储具有键值映射关系的元素。Map接口的主要实现类有HashMap和TreeMap。
1.Java 集合框架图
2.List
2.1 ArrayList集合
ArrayList是List接口的一个实现类,是程序中最常见的一种集合。
在ArrayList集合的底层是使用一个数组来保存元素,在增加或添加指定位置的元素时,会导致创建新的数组,因此可以将ArrayList集合看做一个长度可变的数组,效率比较低,但是这种结构可以通过索引的方式来访问元素。
2.2LinkedList 集合
为了克服ArrayList增删数据时的局限性,可以使用List的另一个实现类 LInkedList。
该集合内部维护了一个双向环链表,链表中的每个元素都通过使用引用的方式来记住它的前一个元素和后一个元素,从而将所有元素都彼此连接起来。 以为采用这种结构,所有在进行增删改操作时具有更高的效率。
另外它还定义了一些针对增删改特有的方法:
add(index, E element) addFrist() addLast() getFirst() getLast() removeFirst() removeLast()
3.Set
3.1 HashSet
所存储的元素是无序的并且是不可重复的。
是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。
当调用Add()方法时添加元素,会通过添加对象的hashCode()获取哈希值,然后根据哈希值计算出一个存储位置,如果该存储位置上有元素则会调用equals()方法,若相同则舍弃。
3.2 TreeSet
是已二叉树的方式来存储元素,它可以实现对集合中的元素进行排序,且是自动排序。
集合中存储的对象,必须实现 Comparable接口。
4.Map
put(Object key, Objectvalue) 添加
get(Object key) 根据键获取值
不能存在相同的键,如果添加时键相同则会覆盖原先值。
5.Collections 工具类
常用方法:
方法名 | 描述 |
---|---|
sort(List list) | 对集合中元素进行排序 |
reverse(List list) | 反转集合中元素 |
shuffle(List list) | 打乱集合中元素顺序 |
max(Collection col) | 根据元素的自然排序返回集合中最大的元素 |
min(Collection col) | 根据元素的自然排序返回元素中最下的元素 |
注: 所有文字及图片学习自《Java 基础入门》传智播客