浅述Java集合架构

基本架构

Java集合主要分为了2大部分:Collection和Map:

Collection主要包含两大部分,Set和List。

  1. List是以线性结构存储的,允许存在重复元素,允许存在重复的空值。我们最常用的包含ArrayList、LinkedList。
  2. 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()

原文发布于微信公众号 - Java学习录(Javaxuexilu)

原文发表时间:2019-04-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券