集合:
分类:
1: Set : 无序,并且放进集合中的对象不能重复。
2: List: 有序(放入的先后的次序), 放进集合中的对象可以重复。
3: Map : 集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复。(Key - Value)
从属关系:
Collection:
1:set:
1:HashSet
2:TreeSet(可排序,通过比较器)
3:LinkedHashSet
2:list:
1:ArrayList
2:Vector
3:LinkedList
Map:
Map:
1:HashMap
2:TreeMap(可排序,通过比较器)
3:Hashtable
Set : 集合中的对象无序、不能重复;—>注意:是通过equals方法比较对象是否相同。
HashSet:
按照哈希算法来存取集合中的对象,存取速度比较快;先 hashCode() && 后 equals()
同时满足这两个才被hashSet认为是同一个对象。
TreeSet:
实现SortedSet接口,具有排序功能;自然排序(默认) : 实现了Comparable接口 ,重写 compareTo(Object o);
LinkedHashSet:
HashSet子类,不仅实现Hash算法,还实现链表数据结构,链表数据结构能提高插入和删除元素的性能;
List : 线性方式(数组)存储.
ArrayList :
代表长度可变的数组。允许对元素进行快速的随机访问,但是向ArrayList
中插入与删除元素的速度较慢;
LinkedList:
在实现中采用链表结构。对顺序访问进行了优化,向List中插入和删除元
素的速度较快,随机访问速度则相对较慢。
Vector :
是线程安全的集合
Map :
1,把键对象和值对象进行映射的集合,它的每一个元素都包含一对键对象和值对象。
2,向Map集合中加入元素时,必须提供一对键对象和值对象. map.put(key,value);
3,从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。value = map.get(key);
4,Map集合中的键对象不允许重复,如果有多个相同的key那么上一次的值会被覆盖。
HashMap :
是线程不安全的集合。判断key是否相同是通过 hashCode && equals方法来判断。
HashTable:
是线程安全的集合。
TreeMap :
可以进行排序(对key进行排序)实现了SortedMap接口,能对 键对象(key) 进行排序。
自然排序(默认) :
实现了Comparable接口 ,重写 compareTo(Object o);
客户端排序 :
创建比较器--->实现java.util.Comparator接口,
重写compare(Object x, Object y)方法。构造器传入TreeMap Eg:new TreeMap(比较器);