Collection:集合接口
------list:集合子接口,元素有序可重复(因为有索引)
----ArrayList:
底层数据结构是数组,查询速度很快,增加、删除速度慢,线程不同步
----LinkedList:
底层数据结构是·链表,查询速度慢,增加、删除速度快
----Vector:
底层数据结构是数组,线程同步,被ArrayList替代了(jdk1.1)
------set:集合子接口,元素无序不重复,是唯一的
-----HashSet:底层数据结构是哈希表
如何保证元素唯一性:
是依据元素的hashcode()、equals()来完成的
如果hashcode()值相同,才会判断equals()是否为true
如果hashcode()值不同,不会判断equals()方法
注意:当判断元素是否存在,删除元素时,都会判断这两个方法
-----TreeSet:底层数据结构是二叉树
如何保证元素唯一性:
compareTo()方法返回0.
可以对集合中的元素排序:
第一种排序方法:自然排序
实现comparable接口,覆盖compareTo()方法
第二种排序方法:当第一的元素不具有比较性或者所具有的比较性不是所需要的,这时需要让容器自身具有比较性
定义一个类,实现Comparator接口,覆盖compare()方法
注意:当要对自定义数据进行排序时,当主要条件相同,需要对次要条件 进行排序。
|