Java集合类 1.体系结构与父类接口介绍

Java集合类 1.体系结构与父类接口介绍

1.集合类体系结构

集合类:可以存储任意类型的对象,并且长度可变。

集合类都位于 java.util 包中。

集合类体系结构包含如图所示的集合接口及其实现类

集合类体系结构

2. Collection接口

从上图中可看出,Collection接口是单列集合类的父接口。其主要子接口包括 List接口Set接口

以下是Collection接口比较重要的一些方法:完整的可自行查看Collection接口源代码或API文档。

返回值类型方法及其描述
booleanadd(E e) 确保此集合包含指定的元素(可选操作)。
booleanaddAll(Collection<? extends E> c) 将指定集合中的所有元素添加到这个集合(可选操作)。
voidclear() 从这个集合中移除所有的元素(可选操作)。
booleancontains(Object o) 返回 true如果集合包含指定元素。
booleancontainsAll(Collection<?> c) 返回 true如果这个集合包含指定集合的所有元素。
booleanequals(Object o) 将指定的对象与此集合进行比较,以进行相等性。
booleanisEmpty() 返回 true如果集合不包含任何元素。
Iterator<E>iterator() 返回此集合中的元素的迭代器。
booleanremove(Object o) 从这个集合中移除指定元素的一个实例,如果它是存在的(可选操作)。
booleanremoveAll(Collection<?> c) 删除此集合中包含的所有元素(可选操作)的所有元素(可选操作)。
intsize() 返回此集合中的元素的数目。
  • List:元素有序,元素可重复。主要实现类:ArrayList,LinkedList,Vector。
  • Set: 元素无序,元素不重复。主要实现类:HashSet,TreeSet,LinkedHashSet。

List集合除了继承了Collection接口所有方法外,还新增以下常用方法:

booleanadd(E e) 将指定的元素到这个列表的末尾(可选操作)。
voidadd(int index, E element) 在列表中指定的位置上插入指定的元素(可选操作)。
booleanaddAll(int index, Collection<? extends E> c) 将指定的集合中的所有元素插入到指定位置的列表中(可选操作)。
Eget(int index) 返回此列表中指定位置的元素。
intindexOf(Object o) 返回此列表中指定元素的第一个出现的索引,或-如果此列表不包含元素,或- 1。
intlastIndexOf(Object o) 返回此列表中指定元素的最后一个发生的索引,或-如果此列表不包含元素,或- 1。
Eremove(int index) 移除此列表中指定位置的元素(可选操作)。
Eset(int index, E element) 用指定元素替换此列表中指定位置的元素(可选操作)。
intsize() 返回此列表中元素的数目。
List<E>subList(int fromIndex, int toIndex) 返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。

Set接口同样继承自Collection接口,方法与List接口基本一样,可以理解为元素无序且元素不重复的Collection。

3. Map接口

从上图中可看出,Map接口是双列集合类的父接口,即以键值对的形式存储元素。

其主要实现类包括 Hashtable(及其子类Properties) , HashMap (及其子类LinkedHashMap),TreeMap
Map接口中的方法:

Modifier and TypeMethod and Description
voidclear() 从这个映射中移除所有的映射(可选操作)。
default Vcompute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) 试图计算出指定键和当前的映射值的映射(或 null如果没有当前映射)。
default VcomputeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) 如果指定的键是不是已经与价值相关的(或映射到 null),尝试使用给定的映射功能,进入到这个Map除非 null计算其价值。
default VcomputeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) 如果指定键的值是存在和非空的,尝试计算一个新的映射,给出了键和它当前的映射值。
booleancontainsKey(Object key) 返回 true如果这Map包含一个指定的键映射。
booleancontainsValue(Object value) 返回 true如果映射到指定的值的一个或多个键。
Set<Map.Entry<K,V>>entrySet() 返回一个 Set视图的映射包含在这个Map。
booleanequals(Object o) 将指定的对象与此映射的相等性进行比较。
default voidforEach(BiConsumer<? super K,? super V> action) 在该映射中的每个条目执行给定的操作,直到所有的条目被处理或操作抛出异常。
Vget(Object key) 返回指定的键映射的值,或 null如果这个Map不包含的键映射。
default VgetOrDefault(Object key, V defaultValue) 返回指定的键映射的值,或 defaultValue如果这个Map不包含的键映射。
booleanisEmpty() 返回 true如果这个Map不包含键值的映射。
Set<K>keySet() 返回一个 Set的关键视图包含在这个Map。
default Vmerge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) 如果指定的键已与值相关联的值或与空值相关联的,则将其与给定的非空值关联。
Vput(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)。
voidputAll(Map<? extends K,? extends V> m) 从指定的映射到这个Map(可选操作)复制所有的映射。
default VputIfAbsent(K key, V value) 如果指定的键是不是已经与价值相关的(或映射到 null)将其与给定的值并返回 null,否则返回当前值。
Vremove(Object key) 如果存在(可选操作),则从该Map中移除一个键的映射。
default booleanremove(Object key, Object value) 仅当它当前映射到指定的值时,为指定的键移除条目。
default Vreplace(K key, V value) 仅当它当前映射到某一值时,替换指定的键的条目。
default booleanreplace(K key, V oldValue, V newValue) 仅当当前映射到指定的值时,替换指定的键的条目。
default voidreplaceAll(BiFunction<? super K,? super V,? extends V> function) 将每个条目的值替换为在该项上调用给定函数的结果,直到所有的条目都被处理或函数抛出异常。
intsize() 返回这个映射中的键值映射的数目。
Collection<V>values() 返回一个 Collection视图的值包含在这个Map。

将在下一篇文章 记录这些集合父类接口的实现类。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值