Java大部分集合类是由Collection接口和Map<K,V>接口衍生而来。
Collection接口:
List<E>、Set<E>、SortedSet<E>、Queue<E>
List接口:ArrayList、LinkedList、Vector
Set接口:HashSet、EnumSet
Set接口的子接口:Sorted<E>、TreeSet
Map<key,value>接口:TreeMap、HashMap、Hashtable、EnumMap
接口Iterable(迭代器)提供了iterator()方法,用于遍历集合中的所有元素。
LinkedList:
一种链表结构,在集合中间位置进行数据的插入或删除效果很好。(相关元素只需要更新地址),提供了队列、堆栈结构的一种实现。
LinkedList<String> strs = new LinkedList<String>();
strs.add("xxx");
ArrayList:
一种数组结构,对于随机访问get和set效率较高,插入或删除较差(相关元素都需要挪位置)。
List<String> elements=new ArrayList<String>();
elements.add("xxx");
List的特点:
有序、可以存放重复元素、异步、线程不安全。(Collections提供了相关synchronizedList同步方法。异步->同步。)
HashSet:
无序、不能重复、异步、线程不安全。
Set<String> s = new HashSet<String>();
s.add("a");
自定义对象判断是否相同的规则:
首先比较两个对象的hashCode是否相同,如果相同再调用其equals,根据返回值true或者false判断是否相同。
TreeSet:
有序、不能重复
Set<String> s = new TreeSet<String>();
s.add("11");
集合中的元素实现Comparable接口,或者提供比较器Comparator,对集合中的元素进行排序。
自定义对象的排序:实现Comparable接口中的compareTo()方法。