集合类的继承关系图:
Object::所有类的父类。
collection:有特定的方法操作它的子类:List ,Set 这两个集合类
==> List 又分为 ArrayList , LinkedList
ArrayList:
保存方式:
采用数组结构保存对象
优点:
数组结构的优点是便于对集合进行快速的随机访问,如果经常需要根据索引位置访问集合中的对象,使用由ArrayList类实现的List集合的效率较好
缺点:
当删除指定索引位置的对象时,会同时将指定索引位置之后的所有对象相应的向前移动一位。如果在指定的索引位置之后有大量的对象,将严重影响对集合的操作效率。
LinkedList:
保存方式:
采用链表结构保存对象
优点:
如果经常需要向集合中插入对象,或者是从集合中删除对象,使用由LinkedList类实现的List集合的效率较好
缺点:
链表结构的缺点是随机访问对象的速度较慢,如果经常需要随机访问集合中的对象
==> Set 又分为 HashSet, TreeSet
HashSet:
优点:
能够快速定位集合中的元素
集合中的对象必须是唯一的
用法:
1.要重新实现equals()方法,从而保证插入集合中对象的标识的唯一性。
2.还需要重新实现hashCode()方法,从而保证插入集合中的对象能够合理地分布在集合中,以便于快速定位集合中的对象。
TreeSet:
http://www.cnblogs.com/yzssoft/p/7127894.html
作用:
TreeSet集合是用来对象元素进行排序的,同样他也可以保证元素的唯一。
compareTo方法来做排序:
此方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。
用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。
==> Map又分为 HashMap, TreeMap
HashMap:
HashMap类实现的Map集合,无序
通过哈希码对其内部的映射关系进行快速查找
HashMap类实现的Map集合对于添加和删除映射关系更高效。
TreeMap:
映射关系存在一定的顺序,在遍历集合时是有序的,
根据健对象进行升序降序
Map< Integer, String> map=new TreeMap<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// return o1.compareTo(o2); //按照key值大小升序排列 -o1.compareTo(o2)即o2.compareTo(o1)按照key值大小降序排列
return -1; //按put反顺序排序 1则为 put顺序排列
}
});
map.put(5, "a");
map.put(3, "c");
map.put(4, "b");
map.put(2, "d");
map.put(1, "e");
for(Entry<Integer, String> aEntry:map.entrySet()) {
System.out.println(aEntry.getKey()+":"+aEntry.getValue());
}