Java中的容器集合(一)(初识容器)

一、容器简介

容器,是用来容纳物体、管理物体。生活中,我们会用到各种各样的容器。如锅碗瓢盆、 箱子和包等。

程序中的“容器”也有类似的功能,用来容纳和管理数据。比如,如下新闻网站的新闻 列表、教育网站的课程列表就是用“容器”来管理:

视频课程信息也是使用“容器”来管理:

开发和学习中需要时刻和数据打交道,如何组织这些数据是我们编程中重要的内容。我    们一般通过“容器”来容纳和管理数据。事实上,我们前面所学的数组就是一种容器,可以    在其中放置对象或基本类型数据。

数组的优势:是一种简单的线性序列,可以快速地访问数组元素,效率高。如果从效率和类型检查的角度讲,数组是最好的。

数组的劣势:不灵活。容量需要事先定义好,不能随着需求的变化而扩容。比如:我们    在一个用户管理系统中,要把今天注册的所有用户取出来,那么这样的用户有多少个?我们    在写程序时是无法确定的。因此,在这里就不能使用数组。

基于数组并不能满足我们对于“管理和组织数据的需求”,所以我们需要一种更强大、    更灵活、容量随时可扩的容器来装载我们的对象。 这就是我们今天要学习的容器。容器(Collection)也称之为集合。

二、容器的结构

2.1结构图

 单例集合:将数组一个一个进行存储

双例集合:基于key-value的结构存储数据

三、单例集合的使用

3.1collection接口介绍

Collection是单例集合根接口,它是集中、收集的意思。collection接口的两个子接口是List、Set接口。

 3.2collection接口中的抽象方法

方法 说明

boolean add(Object element)

增加元素到容器中

boolean remove(Object element)

从容器中移除元素

boolean contains(Object element)

容器中是否包含该元素

int size()

容器中元素的数量

boolean isEmpty()

容器是否为空

void clear()

清空容器中所有元素

Iterator iterator()

获得迭代器,用于遍历所有元素

boolean containsAll(Collection c)

本容器是否包含 c 容器中的所有元素

boolean addAll(Collection c)

将容器 c 中所有元素增加到本容器(取并集)

boolean removeAll(Collection c)

移除本容器和容器 c 中都包含的元素(差集)

boolean retainAll(Collection c)

取本容器和容器 c 中都包含的元素,移除非交集元素

Object[] toArray()

转化成 Object 数组

由于 List、Set 是 Collection 的子接口,意味着所有 List、Set 的实现类都有上面的方法。我们下一节中,通过 ArrayList 实现类来测试上面的方法。

3.3List接口

3.3.1List接口的特点

有序:有序(元素存入集合的顺序和取出的顺序一致)。List 中每个元素都有索引标记。可以根据元素的索引标记(在 List 中的位置)访问元素,从而精确控制这些元素。

可重复:List 允许加入重复的元素。更确切地讲,List 通常允许满足 e1.equals(e2) 的元素重复加入容器。

3.3.2List的常用方法

除了 Collection 接口中的方法,List 多了一些跟顺序(索引)有关的方法,参见下表:

方法

说明

void add (int index, Object element)

在指定位置插入元素,以前元素全部后移一位

Object set (int index,Object element)

修改指定位置的元素

Object get (int index)

返回指定位置的元素

Object remove (int index)

删除指定位置的元素,后面元素全部前移一位

int indexOf (Object o)

返回第一个匹配元素的索引,如果没有该元素,

返回-1.

int lastIndexOf (Object o)

返回最后一个匹配元素的索引,如果没有该元

素,返回-1

 下一篇我将会讲解关于List接口的实现类:ArrayList容器类的具体应用!

Java中的容器类:List接口下的ArrayList、Vector容器类的介绍和使用_程序员不需要码子的博客-CSDN博客

欢迎评论私信我你们遇到的问题,看到后我会第一时间帮你答疑解惑!本文为作者复盘时梳理的知识点内容,三周左右复盘完大学Java学习中的所有内容,届时会设置为仅粉丝可查阅,感兴趣的同学可以关注我哦!也欢迎咨询你遇到的别的问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值