前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅述Java集合架构

浅述Java集合架构

作者头像
Java学习录
发布2019-04-18 14:56:45
3470
发布2019-04-18 14:56:45
举报
文章被收录于专栏:Java学习录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的一些基本方法

代码语言:javascript
复制
//获取大小 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是的方法外它还定义了自己本身的一些基本方法。

代码语言:javascript
复制
//往指定索引添加元素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是键对象和值对象映射的特殊,它提供了三种遍历方法

代码语言:javascript
复制
abstract Set<Entry<K, V>>     entrySet()abstract Set<K>               keySet()abstract Collection<V>        values()

下方是Map基本方法:

代码语言:javascript
复制
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()

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档