Java集合类
List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口。
Set下有HashSet,LinkedHashSet,TreeSet。
List下有ArrayList,Vector,LinkedList。
Map下有Hashtable,LinkedHashMap,HashMap,TreeMap。
Collection接口下还有个Queue接口,有PriorityQueue类。
List 接口:元素按进入先后有序保存,可重复
ArrayList
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程不安全,效率高
Vector
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程安全,效率低
LinkedList
优点: 底层数据结构是链表,查询慢,增删快。
缺点: 线程不安全,效率高
Set 接口: 仅接收一次,不可重复,并做内部排序
HashSet 使用hash表(数组)存储元素(无序,唯一)
LinkedHashSet 链表维护元素的插入次序(有序,唯一)
TreeSet 底层实现为二叉树,元素排好序(唯一,有序)
Map 接口 键值对的集合 (双列集合)
Hashtable 接口实现类, 同步, 线程安全,不允许null值(无序)
HashMap 接口实现类,没有同步,线程不安全,允许null值(无序)
如果对同步性或与遗留代码的兼容性没有任何要求,建议使用HashMap。
TreeMap 红黑树对所有的key进行排序(有序)
**LinkedHashMap **(HashMap+LinkedList)增加了时间和空间上的开销,线程不安全(有序)
list的一些常用方法:
add(int index, E element) 在指定位置插入元素,后面的元素都往后移一个元素。
addAll(int index, Collection<? extends E> c) 在指定的位置中插入c集合全部的元素,如果集合发生改变,则返回true,否则返回false。
get(int index) 返回list集合中指定索引位置的元素。
indexOf(Object o) 返回list集合中第一次出现o对象的索引位置,如果list集合中没有o对象,那么就返回-1。
listIterator() 返回此列表元素的列表迭代器(按适当顺序)。
listIterator(int index) 从指定位置开始,返回此列表元素的列表迭代器(按适当顺序)。和上面那个迭代器不同的就是多了一个参数,就是能控制迭代器开始的位置。
set(int index, E element) 在索引为index位置的元素更改为element元素
subList(int fromIndex, int toIndex) 返回从索引fromIndex到toIndex的元素集合,包左不包右
Set的常用方法:
begin() 返回set容器的第一个元素
end() 返回set容器的最后一个元素
clear() 删除set容器中的所有的元素
empty() 判断set容器是否为空
max_size() 返回set容器可能包含的元素最大个数
size() 返回当前set容器中的元素个数
rbegin() 返回的值和end()相同
rend() 返回的值和rbegin()相同
Map的常用方法:
put(K key, V value) 向map集合中添加Key为key,Value为value的元素,当添加成功时返回null,否则返回value。
putAll(Map<? extends K,? extends V> m) 向map集合中添加指定集合的所有元素。
clear() 把map集合中所有的键值删除。
containsKey(Object key) 检出map集合中有没有包含Key为key的元素,如果有则返回true,否则返回false。
containsValue(Object value) 检出map集合中有没有包含Value为value的元素,如果有则返回true,否则返回false。
Set<Map.Entry<K,V>> entrySet() 返回map到一个Set集合中,以map集合中的Key=Value的形式返回到set中。
equals(Object o) 判断两个Set集合的元素是否相同。
get(Object key) 根据map集合中元素的Key来获取相应元素的Value。
hashCode() 返回map集合的哈希码值。
isEmpty() 检出map集合中是否有元素,如果没有则返回true,如果有元素则返回false。
keySet() 返回map集合中所有Key。
remove(Object key) 删除Key为key值的元素。
size() 返回map集合中元素个数。
values() 返回map集合中所有的Value到一个Collection集合。
话不多说,看例子: