◆
基本架构
◆
Java集合主要分为了2大部分:Collection和Map:
Collection主要包含两大部分,Set和List。
Map是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象,它不允许有重复的键对象,但是可以包含重复的值对象 ,最多允许存在一个重复的空键,可以存在多个空值。
◆
各个接口和类的基本方法
◆
Collection是一个接口高度抽象的借口,Collection接口的所有子类(直接子类和间接子类)都必须实现2种构造函数:不带参数的构造函数 和 参数为Collection的构造函数。带参数的构造函数,可以用来转换Collection的类型(比如new ArrayList(LinkedList))。
以下是Collection的一些基本方法
//获取大小 int size();//是否为空boolean isEmpty();//是否存在某个元素boolean contains(Object o);//遍历元素Iterator<E> iterator();//转化为数组Object[] toArray();//添加元素boolean add(E e);//删除元素boolean remove(Object o);//添加集合boolean addAll(Collection<? extends E> c);//删除集合boolean removeAll(Collection<?> c);//清空集合void clear();
List是一个继承于Collection的接口,鉴于List是一个有序队列,除了包含继承Collection是的方法外它还定义了自己本身的一些基本方法。
//往指定索引添加元素abstract void add(int location, E object)//往指定索引添加一个集合abstract boolean addAll(int location, Collection<? extends E> collection)//获取指定索引的元素abstract E get(int location)//获取元素第一次出现的索引abstract int indexOf(Object object)//获取元素最后一次出现的索引abstract int lastIndexOf(Object object)//从指定索引遍历对象abstract ListIterator<E> listIterator(int location)//遍历对象abstract ListIterator<E> listIterator()//删除指定索引位置的对象abstract E remove(int location)//更新指定索引位置的对象abstract E set(int location, E object)//截取abstract List<E> subList(int start, int end)
Set不同于List的特殊需求,它不需要维护线性结构,所以它的API跟Collection是一样的。
介于Map是键对象和值对象映射的特殊,它提供了三种遍历方法
abstract Set<Entry<K, V>> entrySet()abstract Set<K> keySet()abstract Collection<V> values()
下方是Map基本方法:
abstract void clear()abstract boolean containsKey(Object key)abstract boolean containsValue(Object value)abstract boolean equals(Object object)abstract V get(Object key)abstract int hashCode()abstract boolean isEmpty()abstract V put(K key, V value)abstract void putAll(Map<? extends K, ? extends V> map)abstract V remove(Object key)abstract int size()