简介:
Java的集合框架是一组使用很方便的接口和类。这组接口和类就在java的公有程序库中(utiltities),称为容器类或者集群类,它们给出了精巧的实现。
Java的集合框架一般包括
{
接口
类
算法
}
接口:譬如Collection接口,List接口,Set接口,Map接口。
需要注意的是:集合框架容器的元素类型都为Object.从容器中取得元素时必须把它转化成原来的类型。
实现类:
譬如List接口的实现类常用的有ArrayList和LinkedList
ArrayList:
boolean | add(E e) |
void | add(int index, E element) |
boolean | contains(Object o) |
E | get(int index) |
E | remove(int index) |
boolean | remove(Object o) |
LinkedList
void | addFirst(E e) |
void | addLast(E e) |
E | getFirst() |
E | getLast() |
LinkedList(Collection c) | 构建链表集合,并添加集合C中的所有元素 |
ArrayList的优点是允许快速随机访问以及快速遍历,但是在中央位置插入或删除元素时,效率很差。
LinkedList可以快速实现在中央位置插入或删除元素,特别是在首部和尾部实现插入或删除
Set接口的实现类有HashSet和TreeSet
HashSet
boolean | add(E e) |
boolean | contains(Object o) |
boolean | isEmpty() |
boolean | remove(Object o) |
HashSet(Collection c) | 构建HashSet,并添加集合C中的所有元素 |
HashSet(int cap,float loadFactor) | 构建特定容量和加载因子的HashSet(加载因子为0-1) |
TreeSet
TreeSet(Collection c) | 构建TreeSet,并添加集合C中的所有元素 |
TreeSet(Comparator c) | 构建树集,用自定义的比较器进行排序 |
比较:
HashSet常用于存储重复自由的集合,注意在创建自己的要添加到HashSet的类时,需要重写HashCode()和equals()方法。
TreeSet常用从集合中以有序的方式插入或抽取元素
Map接口的实现有HashMap和TreeMap
V | put(K key, V value) |
V | get(Object key) |
boolean | containsKey(Object key) |
boolean | containsValue(Object value) |
键集和值集可以直接println输出。
Set<K> | keySet() |
Collection<V> | values() |
比较:
HashMap 使用散列表实现Map接口,常用于快速查找。
TreeMap用树结构实现Map接口。TreeMap提供了按排序顺序存储关键字/值的方式,同时允许快速检索。
一般来说:如果需要对集合中的元素进行排序,才可以用TreeMap
拾遗:
迭代器Iterator 在上述类中使用的也比较多。
boolean | hasNext() |
E | next() |
void | remove() |