◆
基本架构
◆
Java集合主要分为了2大部分:Collection和Map:
Collection主要包含两大部分,Set和List。
List是以线性结构存储的,允许存在重复元素,允许存在重复的空值。我们最常用的包含ArrayList、LinkedList。
Set不按顺序排列,不允许有重复元素的集合,且最多存在允许一个空值。我们最常用的包含HashSet、TreeSet。
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()
收藏转发好看再走呗!