JAVA单列集合

server/2024/10/25 12:00:59/

c4ade6464411419aa84bae42fdb3613c.jpg

 List系列集合:添加的元素是 有序、可重复、有索引

 Set系列集合:添加的元素是 无序、不重复、无索引

Collection

Collection是单列集合的接口,它的功能是全部单列集合都可以继承使用的

public boolean add(E e)        把给定的对象添加到当前集合中
public void clear()        清空集合中所有的元素
public boolean remove(E e)        把给定的对象在当前集合中删除
public boolean contains(bject obj)        判断当前集合中是否包含给定的对象
public boolean isEmpty()        判断当前集合是否为空
public int size()        返回集合中元素的个数/集合的长度

Collection是一个接口,我们不能直接创建他的对象。所以,现在我们学习他的方法时,只能创建他实现类的对象。
下面用多态的方式创建对象,这是为了学习Collection接口里的方法

add:把给定的对象添加到当前集合中

5c81e3d7db6949d29a7fb4865a97d6db.png

94206abab92b4a6cbeece5c82c653800.png

如果我们要往List系列集合中添加数据,那么方法永远返回true,因为List系列的是允许元素重复的。
如果我们要往Set系列集合中添加数据,如果当前要添加元素不存在,方法返回true,表示添加成功。如果当前要添加的元素已经存在,方法返回false,表示添加失败。因为Set系列的集合不允许重复。

clear:清空集合中所有的元素

67a6ef3968204a5e9747ec9ad6fa5a5f.png0966331c088f4944aff34b3e5e8d7275.png

remove(E e)        把给定的对象在当前集合中删除

95e60024955a48b9bd39fc5ed773ba66.png32ec8e1eed1c4f44af266e4204563cdb.png

因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除。只能通过元素的对象进行删除。方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false。如果要删除的元素不存在,就会删除失败。

contains(bject obj)        判断当前集合中是否包含给定的对象

2f6fbfc6981145c689ca666e61e34b8c.pngd6621a79c8c1461db3f3531f3038041d.png

e0a31b90414c40308df8cc0810440788.png

272aa4b46f98434e83c9cf2ee6560d62.png

contains底层是依赖equals方法进行判断是否存在的。

b3d306087a5c4e7b8b0859183489bdb3.png所以,如果集合中存储的是自定义对象(例如自己定义的Student类,teacher类),也想通过contains方法来判断是否包含,那么在javabean类中,一定要重写equals方法。 

isEmpty()        判断当前集合是否为空

2e9ea2604f21431aa8d8728bbf946394.png

c623d22fafa4401d8a09fda9e62d60d7.png

size()        返回集合中元素的个数/集合的长度

a9dadfb28ccb4115b771f3eeb82023bf.png977bba15ebb04447bce8e99774b75e48.png

Collection遍历方式

迭代器遍历

迭代器在Java中的类是lterator,迭代器是集合专用的遍历方式

Collection集合获取迭代器

Iterator<E> iterator()     返回迭代器对象,默认指向当前集合的0索引

lterator中的常用方法 

boolean hasNext()        判断当前位置是否有元素,有元素返回true,没有元素返回false
E next()        获取当前位置的元素,并将迭代器对象移向下一个位置。

0bed0597b8d14d93be5b4ad7f350e9f0.png9f07181b4efb4b4dbde38c9f5526b1fe.png

迭代器遍历完毕,指针不会复位

34eed5aeca684dc4841723902040cf72.pngb63632407a874a238161a76792b0cb81.png如果我们要继续第二次遍历集合,只能再次获取一个新的迭代器对象

增强for遍历

增强for的底层就是迭代器,为了简化迭代器的代码书写的。
它是IDK5之后出现的,其内部原理就是一个iterator迭代器
所有的单列集合和数组才能用增强for进行遍历

for (元素的数据类型 变量名 : 数组或者集合){

 

}

44eb98b0845640dea9abca9eff8b84cd.png c368c8a9817a4f4aa4b21c4e86fa2497.png

修改增强for中的变量,不会改变集合中原本的数据。

1b0f4a9cb7484690b09d502cad9ef77d.png

80e407d460ff420dbff9c39ab578ca29.png

Lambda表达式遍历

得益于]DK8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式。

5ac1ea5a99144542a3a4333bf64543da.png

26c2041d92494752985eb7db8bf862aa.png

 

 


http://www.ppmy.cn/server/134711.html

相关文章

数据结构 ——— 队列oj题:设计循环队列

目录 题目要求 代码思路 代码实现 题目要求 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以…

Python爬虫:获取去哪儿网目的地下的景点数据

文章目录 1. 前言2. 网页解构分析3. 代码实现4. Java 新建 SpringBoot项目实现上述网页效果1. 前言 本篇文章讲述如何使用Python爬虫爬取去哪儿目的地下的景点数据,会提供一些参考代码,需要完整的,可以私信,但是参考代码仅供学习使用喔,不能用于商业活动!读者切记。 用这…

前端学习---(2)CSS基础

CSS 用来干什么&#xff1f; CSS 是用来指定文档如何展示给用户的一门语言——如网页的样式、布局、等等。 css语法: 选择器{ 属性名: 属性值; 属性名: 属性值; } h1 {color: red;font-size: 5em; }h1: 选择器 color: 属性 冒号之前是属性&#xff0c;冒号之后是值。 font-size…

php命令执行的一些执行函数----以ctfshow靶场为解题思路

解法10、利用文件包含 ①?cinclude$_GET[1]?>&1data://text/plain,<?php system(tac flag.php);?> cdata://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg ②?cinclude$_GET[1]?>&1php://filter/readconvert.base64-encode/resourc…

【C++刷题】力扣-#448-找到所有数组中消失的数字

题目描述 给你一个含 n 个整数的数组 nums &#xff0c;其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字&#xff0c;并以数组的形式返回结果。 示例 示例1: 输入&#xff1a;nums [4,3,2,7,8,2,3,1] 输出&#xff1a;[5,6]示例2: …

2024 10.25 判断一个矩阵是否对称

主对角线对称 思路&#xff1a;a[i][j]!a[j][i] 第一行和第一列顺序比较&#xff0c;后面依次类推 #include <stdio.h>int main(){int n,m;scanf("%d",&n);int a[n][n];for(int i0;i<n;i){for(int j0;j<n;j)scanf("%d",&a[i][j]);}i…

Fragments by E2B:AI生成应用模板,让应用开发更智能

在人工智能技术飞速发展的今天&#xff0c;我们见证了许多创新工具的诞生&#xff0c;它们正在改变传统的软件开发方式。今天&#xff0c;我要向大家介绍一个名为Fragments by E2B的开源项目&#xff0c;这是一个基于Next.js 14、shadcn/ui、TailwindCSS和Vercel AI SDK构建的A…

什么是RPC

什么是RPC RPC的全称是Remote Procedure Call&#xff0c;即远程过程调用&#xff0c;是一种计算机通信协议。它允许程序在不同计算机之间进行通信和交互&#xff0c;就像本地调用一样。简单解读字面上的意思&#xff0c;远程是指要跨机器而非本机&#xff0c;所以需要用到网络…