Java集合框架(一)Collection与Map的操作

Java成神之路 专栏收录该内容
1 篇文章 0 订阅

前言

我们写程序会经常用到一组类型相同的对象,可以使用数组来集中存放这些类型相同的对象,但数组一经定义边不能改变大小。因此,Java提供了一个集合框架,该框架定义了一组接口和类,使得处理对象组更容易。
集合框架图如下,先做一个大概的了解,下文会有一些简化版的帮助你理解
在这里插入图片描述

接口继承关系

Collection和Map是最基本的接口,它们的子接口如图
在这里插入图片描述

1.Collection接口是所有集合类型的根接口,它有三个子接口:

Set接口:不能含有重复的元素,无序。
List接口:是一种线性表的数据结构,允许重复,维护元素插入顺序。
Queue接口:是先进先出的方式排列其元素(类似于排队,先排先办事),一般称为队列

集合有序性重复性访问方式
List有序可重复元素的索引
Set无序不可重复元素本身
Queue有序可重复访问队首或队尾

(1)基本操作

实现基本操作的方法有添加元素、删除指定元素、返回集合中元素的个数、返回集合的迭代器对象

操作解释
boolean add(E e)向集合中添加元素e
boolean remove(Object o)从集合中删除指定元素o
boolean contains(Object o)返回集合中是否包含指定元素o
boolean isEmpty()返回集合是否为空,即不包含元素
int size返回集合中包含的元素个数
Iterator iterator()返回包含所有元素的迭代器对象
default void forEach(Consumer<?super T>action)从父接口继承的方法,在集合的每个元素上执行指定的操作

(2)批量操作

操作解释
boolean addAll(Collection<? extends E> c)将集合c中的所有元素添加到当前集合中
boolean removeAll(Collection<?> c)从当前集合中删除c中的所有元素
default boolean removeIf(Predicate<? super E> filter)从当前集合中删除满足谓词的所有元素
boolean containsAll(Collection<?> c)返回当前集合是否包含c中的所有元素
boolean retainAll(Collection<?> c)在当前集合中只保留指定集合c中的元素,其他元素删除
voif clear()将集合清空

(3)数组操作

操作解释
Object[] toArray()返回包含集合中所有元素的对象数组
< T> T[] toArray(T[] a)返回包含集合中所有元素的数组,返回数组的类型是指定的数组类型

示例1:
将c中的对象转换成一个新的Object数组a

Object[] a =c.toArray();

示例2:
将只包含String对象的c,转换成String数组

String[] a = c.toArray(new String[0]);

(4)流(Stream)操作方法

Stream API是Java8新增的功能,称为流API。可以在集合上创建一个Stream对象,然后在其上执行有关操作

操作解释
public default Stream< E> stream()以当前集合作为源返回一个顺序Stream对象
public default Stream< E> paralellStream()以当前集合作为源返回一个并行Stream对象

2.Map接口常用的实现类有HashMap类、TreeMap类、Hashtable类和LinkedHashMap类

(1)基本操作

操作解释
public V put(K key,V value)向映射对象中添加一个“键/值” 对
public V get(Object key)返回指定键的值
public V remove(Object key)从映射中删除指定键的“键/值”对
public boolean containsKey(Object key)返回映射中是否包含指定的值
public boolean containsValue(Object value)返回映射中是否包含指定的值
default V replace(K key,V value)若指定的“键/值”对存在于映射中,用指定的“键/值”对替换之
default void forEach(BiConsumer<? super K,?super V>)对映射中的每项执行一次动作,直到所有项处理完或发生异常
public int size()返回映射中包含的“键/值"对个数
public boolean isEmpty()返回映射是否为空

(2)批量操作

操作解释
public void putAll(Map<? extends K,? Extends V>map)将参数map中的所有“键/值”对添加到映射中
public void clear()删除映射中所有“键/值”对
public Set< K>keySet()返回由键组成的Set对象
public Collection< V>values()返回由值组成的Collection对象
public Set<Map.Entry<K,V>>entrySet()返回包含Map.Entry<K,V>的一个Set对象

未完待续。。。后面将继续对每个接口做详细的介绍并在本文附上超链接

相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值