概述:collection集合主要是用来存储对象或者数组的,要求存储的类型一致。
实际上集合中存放的是对象的引用,而非对象本身。
Collection接口:
List接口:
ArrayList具体类(可变数组结构,不同步)
LinkedList具体类(链表结构,不同步)
Vector向量类(已过时,同步)
Stack具体类
Set接口:
TreeSet具体类(二叉树结构,可对元素进行排序)
HashSet具体类(哈希表结构)
LinkedHashSet具体类
Map接口:
HashMap类
LinkedHashMap类
TreeMap类
一、collection集合分为两个集合: List集合、Set集合 (均为接口)
1、List集合特点:存储元素有序,允许重复元素。用户能够使用索引,读取速度快。
2、Set集合特点:存储元素无序,不允许重复元素。
二、
1、list存对象时,重写类的equals方法
2、set存对象时,重写类的hashCode 和 equals方法 (保证元素的唯一性)
三、经常使用的ArrayList 和 TreeSet
1、ArrayList中除去重复元素的方法:
方式一:二次循环,判断相等再删除。注意删除时 index--;
方式二:另建一个容器,循环取出原容器元素,看新建容器里是否包含该元素,如果不包含,存;若包含,则不存。最后新容器所有元素覆盖原容器。
2、TreeSet类 的排序功能
让元素自己具备排序功能:
1)排序方式:让元素类实现Comparable结构,重写compareTo()方法;
2)如何保证元素的唯一性(不重复):参考compareTo()方法的返回值是否为0。
让集合具备排序(比较)功能:
1)定义一个比较器去实现Comparator接口,重写compare()方法;
2)将比较器作为对象参数传递给TreeSet集合的构造函数。