集合框架
一.Collection接口:单列集合,用来存储一个一个的对象
1. List接口:存储有序,可重复的数据
- Arraylist:作为List的主要实现类;线程不安全,效率高;底层使用Object[ ]elementData存储数据。
- LinkedList:对于频繁的插入操作,LinkedList效率比ArrayList高;底层使用双向链表存储数据
- Vector:作为List的古老实现类,线程安全,效率低;底层使用Object[ ]elementData存储数据。
2.Set接口:存储有序,不可重复的数据===》类似于高中"集合"
- HashSet:作为Set的主要实现类;线程不安全;可以存储null值
- LinkedHashSet:可以按照添加的顺序遍历内部元素;对于频繁的遍历操作,LinkedHashSet效率比Hash Set高。
- TreeSet:可以按照添加数据的指定属性进行排序,即添加的对象必须是相同类。
二.Map接口:双列集合,用来存储一对一对(key-value)的数据===》类似于高中“函数”
1.HashMap接口:作为Map的主要实现类;线程不安全,效率高;可存储null的key-value;底层为数组+链表+红黑树结构
- LinkedHashMap:可按照添加元素的顺序实现遍历集合
2.TreeMap接口:按照添加的key-value对进行排序,实现排序遍历;此时考虑key的自然排序和定制排序;底层使用红黑树。
3.HashTable接口:作为Map的古老实现类;线程安全,效率低;不可存储null的key-value
-properties:常用来处理配置文件,key和value都是String类型。
1.Map中的类若为自定义类,必须重写equals()和hashcode()方法;value若为自定义类,必须重写equals()方法。
2.key(无序,不可重复,Set存储所有key)+value(无序,可重复,Collection存储所有value)=entry(无序,不可重复,Set存储所有entry)