Java集合框架包含的内容
Java集合框架简图
接口: 表示集合的抽象数据类型,虚线框表示,如Collection、List、Set、Map、Itector。
实现: 集合框架中接口的具体实现,实现狂表示,祖先狂表示最常用的实现,如ArrayList、LinkedList、 HashMap、HashSet。
算法: 在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,如查找、排序等。Java提供 了进行集合操作的工具类Collections(类似于Arrays类),它提供了对集合进行排序等多种算法的实现。
Collection 接口存储一组不唯一(允许重复)、无序的对象。
Set 接口继承Collection接口,存储一组唯一(不允许重复)、无序的对象。
List接口继承Collection接口,存储一组不唯一(允许重复)、有序的对象。(以元素插入的次序来放置元素,不会重新排列)
Map接口存储一组成对的键-值对象,提供key到value的映射。Map中的key不要求有序,不允许重复。
Iterator 接口是负责定义访问和遍历元素的接口。
方法名称 | 说明 |
boolean add(Object o) | |
void add(int index,Object o) | 添加某个元素到某个位置 |
int size() | 返回元素个数 |
Object get(int index) | 返回指定位置元素 |
boolean contains(Object o) | 是否存在某个元素 |
boolean remove(Object o) | 删除元素 |
Object remove(int index) | 移除指定位置元素 |
LinkedList一些特殊方法:addFirst(),addLast()getFirst(),getLast(),removeFirst(),removeLast().
方法 | 说明 |
boolean add(Object o) | 如果尚未包含指定元素,则添加 |
void clear() | set移除所有元素 |
int size() | 返回set中元素数量 |
boolean is Empty() | 判断是否为空 |
boolean contains(Object o) | 是否包含某个元素 |
boolean remove(Object o) | 移除 |
方法 | 说明 |
object put(Object key,Object value) | 添加 |
object get(Object key) | 根据键返回值,若不存在指定键返回null |
Object remove(Object key) | 删除 |
int size() | 返回元素个数 |
Set keySet() | 返回键集合 |
Collection values() | 返回值集合 |
boolean containsKey(Object key) | 判断是否存在指定key |
boolean isEmpty() | |
void clear() | 移除所有映射关系 |
Hashtable和HashMap的异同:
HashMap类出现之前,JDK中存在一个和他同样采用哈希表存储方式、同样实现键值映射的集合类Hashtable。 实现原理相同,功能相同,很多情况下可以互用。
区别:
Hashtable继承自Dictionary类,而HashMap实现了Map接口。
Hashtable是线程安全的,HashMap重速度、轻安全,是线程非安全的,在多线程中要管理线程同步问题。
Hashtable不允许null值(key、value都不允许),HashMap允许。