集合

Collection和map

Collection

List接口 元素有序 可重复的集合

ArrayList // 作为List 接口的主要实现类 线程不安全 效率高 使用Object[] 存储

LinkedList 对于频繁的插入 删除操作 使用此类效率高 底层使用的双向链表存储

Vector 古老实现类 线程安全 效率低

Set接口 元素无需,不可重复的集合

HashSet 作为set接口主要实现类 线程不安全 可以存储null值

LinkHashSet 作为HashSet的子类 遍历其内部数据时 可以按照添加的顺序遍历

TreeSet 可以按照添加的对象的指定属性 进行排序

在自然排序中 比较两个对象是否相同的标准 : compareTo() 返回是0; 不在是equals();

在定制排序中 比较两个对象是否相同的标准 : compare() 返回是0;不再是equals();

父类->子类

Collection ->List,Set

List实现类: ArrayList LinkedList Vector

Set实现类 :HashSet LinkHashSet TreeSet

map

|-- HashMap 主要实现类 线程不安全的 效率高 ; 存储null的key和value

|-- LinkedHashMap 保证遍历map元素时,可以按照添加的顺序实现遍历

原因:在原有的HashMap底层结构基础上 添加了一对指针,指向前一个和后一个元素

对于频繁的遍历操作 此类执行效率高于HashMap

|-- TreeMap 保证按照添加的key-value 对进行排序 实现排序遍历,此时考虑key的自然排序或定制排序 底层使用的红黑树

|-- Hashtable 作为古老的实现类 线程安全 效率低

|-- Properties: 常用来处理配置文件 key和value都是String类型

map中的key :无需的 不可重复的 使用set存储所有的key key所在类中需要重写equals()和hashCode()

map中的value : 无序的 可重复的 使用Collection存储所有的value value所在的类中要重写equals()

Map.Entry map 内部接口 此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。