浅述Java集合架构

基本架构

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

640?wx_fmt=png640?wx_fmt=png

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()

640?wx_fmt=gif

640?wx_fmt=jpeg

 收藏转发好看再走呗!

640?wx_fmt=gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值