- List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口
- Set下有HashSet,LinkedHashSet,TreeSet
- List下有ArrayList,Vector,LinkedList
- Map下有Hashtable,LinkedHashMap,HashMap,TreeMap
Set 无序,唯一
HashSet(哈希表),LinkedHashSet(链表和哈希表),TreeSet(红黑树)
- TreeSet的主要功能用于排序
- LinkedHashSet的主要功能用于有序的集合(先进先出)
- HashSet只是通用的存储数据的集合
set集合遍历方法:
1.迭代器:
迭代器有remove方法
2.foreach循环:
for(String str : list){
System.out.println(str);
}
List 有序,可重复
ArrayList,Vector,LinkedList
HashSet底层:数组加链表的形式
排序方法:
1.自然排序
Student类中实现 Comparable接口
重写Comparable接口中的Compareto方法
当定义的的集合类型本身不支持比较的时候,可以使引用的类型实现Comparable<>接口,重写compareTo()方法,经过比较(二叉树排序),根据返回值进行排序
2.定制排序
实现 Comparator接口
Set和List对比:
Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。
Map接口:
Map 提供 key 到 value 的映射,你可以通过“键”查找“值”。一个 Map 中不能包含相同的 key ,每个 key 只能映射一个 value 。
map中的常用方法:
map遍历方式:
方法一 :在for-each循环中使用entries来遍历
方法二:使用Iterator遍历
方法三:使用entrySet遍历
Collections工具类
跟排序相关的方法:
查找替换的相关方法:
1.Map存储数据的特点:双列数据,存储key-value对数据
key--->无序的,不可重复的--->set存储
value--->无序的,可重复的--->collection存储
key-value--->无序的,不可重复的--->set存储