Java 集合的介绍和使用

news2024/11/24 0:08:26

1.什么是集合?

对一些数据的存储就叫做集合,相比于数组,这是一种动态的集合。

        1.可以动态的保存任意多个对象

        2.提供一些动态操作集合的方法比如:add ,remove ,set ,get  等。

        3.使用集合更加方便,提高代码编写效率。

2.集合的继承关系

Collection

Map

3.对集合的一些基本操作

1. 创建一个arraylist集合。

ArrayList arrayList = new ArrayList();

2. 追加元素。

arrayList.add();

3. 删除index位置的元素

arrayList.remove();

4. 直接删除某个元素

arrayList.remove();

5. 元素是否包含在arraylist 中

arrayList.contains()

6. 获取集合的元素个数

arrayList.size()

7. 判断集合是否为空

arrayList.isEmpty()

8. 清空集合

arrayList.clear();

9. 添加多个元素

arrayList.addAll();

10. 是否包含一个集合

arrayList.containsAll();

11. 删除多个元素

arrayList.removeAll();

import java.util.ArrayList;

public class main {
                @SuppressWarnings({"all"})
                public static void main(String [] args)
                {
                                // 创建一个arraylist集合。
                                ArrayList arrayList = new ArrayList<>();

                                // 追加元素。
                                arrayList.add("Start");
                                arrayList.add(123);
                                arrayList.add(3.14159);

                                System.out.println(arrayList);

                                // 删除index位置的元素
                                arrayList.remove(2);
                                System.out.println(arrayList);

                                // 直接删除某个元素
                                arrayList.remove("Start");
                                System.out.println(arrayList);

                                // 元素是否包含在arraylist 中
                                System.out.println(arrayList.contains(123));
                                
                                // 获取集合的元素个数
                                System.out.println(arrayList.size());

                                // 判断集合是否为空
                                System.out.println(arrayList.isEmpty());

                                // 清空集合
                                arrayList.clear();
                                System.out.println(arrayList);

                                // 添加多个元素
                                ArrayList arrayList2 = new ArrayList();
                                arrayList2.add("good");
                                arrayList2.add(12345);
                                arrayList2.add(3.444222);

                                arrayList.addAll(arrayList2);

                                System.out.println(arrayList);

                                // 是否包含一个集合
                                boolean b=arrayList.containsAll(arrayList2);
                                System.out.println(b);

                                // 删除多个元素

                                arrayList.removeAll(arrayList2);
                                System.out.println(arrayList);

                }
}

4.集合迭代器的使用

1.什么是迭代器?

我的说法

       就是想办法遍历集合元素。

百度说法更加专业

       迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。

2.while类型的迭代器遍历元素

比如如下例子

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class main {
                @SuppressWarnings({"all"})
                public static void main(String [] args)
                {
                               
                                // 创建集合
                                Collection col = new ArrayList();
                                col.add(new Person("fanren", 2341));
                                col.add(new Person("qingqing", 4422));
                                col.add(new Person("chado", 2344));

                                // 得到集合的迭代器

                                Iterator it = col.iterator();
                                // 判断it指向的是否为空
                                while(it.hasNext())
                                {
                                                // 如果不为空,就直接输出元素。
                                                System.out.println(it.next());
                                }
                                
                }
}

class Person{
                private double salary;
                private String name;

                public Person(String name,double salary)
                {
                                this.name=name;
                                this.salary=salary;
                }

                @Override
                public String toString() {
                                return this.name+"\t"+this.salary;
                }
}

3.while迭代器分如下几步

        1.得到集合的迭代器

        Iterator it = col.iterator();

        2.判断it指向的是否为空

        while(it.hasNext())

         {

                3.如果不为空,就直接输出元素。

                System.out.println(it.next());

        }

4.for循环的迭代器遍历元素。

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class main {
                @SuppressWarnings({"all"})
                public static void main(String [] args)
                {
                               
                                // 创建集合
                                Collection col = new ArrayList();
                                col.add(new Person("fanren", 2341));
                                col.add(new Person("qingqing", 4422));
                                col.add(new Person("chado", 2344));

                                
                                // for循环遍历

                                // 从集合col中取元素放到ob中
                                for(Object ob : col)
                                {
                                                // 直接输出。
                                                System.out.println(ob);
                                }
                                
                }
}

class Person{
                private double salary;
                private String name;

                public Person(String name,double salary)
                {
                                this.name=name;
                                this.salary=salary;
                }

                @Override
                public String toString() {
                                return this.name+"\t"+this.salary;
                }
}

for类型的迭代器底层还是while类型的迭代器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创建 ASP.NET Core MVC 项目

目录 一、创建ASP.NET Core MVC项目 二、ASP.NET Core MVC目录结构 一、创建ASP.NET Core MVC项目 打开Visual Studio 2022 点击创建新项目 在列表中找到:ASP.NET Core Web应用(模型-试图-控制器):用于创建包含示例ASP.Net Core Mvc视图和控制器的Asp.NET Core应用程序…

Docker如何安装nacos最新版本2.2.0

本文介绍如何在docker容器下安装部署nacos最新版本2.2.0。一、单机本地配置1.1 拉取nacos镜像执行以下命令从docker远端拉取nacos镜像文件。docker pull nacos/nacos-server1.2 启动nacos镜像执行以下命令&#xff0c;以单机模式启动nacos镜像。docker run -d --name nacos -p …

P5594 【XR-4】模拟赛————C++、Python

目录题目【XR-4】模拟赛题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样例输入 #2样例输出 #2样例 #3样例输入 #3样例输出 #3提示解题思路C的Code运行结果Python的代码运行结果题目 【XR-4】模拟赛 题目描述 X 校正在进行 CSP 前的校内集训。 一共有 nnn …

人工智能算法模型--Minimax(极大极小)搜索算法学习笔记

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; (*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &a…

基于MicroPython的ESP32在OLED上实时刷新温湿度

基于MicroPython的ESP32用起来后&#xff0c;做些小扩展功能&#xff1a; 1、通过DHT11获取温湿度&#xff1b; 2、将获取的温湿度显示在OLED上&#xff1b;并通过定时器&#xff0c;定时刷新&#xff1b; 3、OLED可显示中文&#xff1b; 一、DHT11获取温湿度 这个比较简单&a…

Java泛型详细内容讲解

1.什么是泛型 1.1背景&#xff1a; JAVA推出泛型以前&#xff0c;程序员可以构建一个元素类型为Object的集合&#xff0c;该集合能够存储任意的数据类型对象&#xff0c;而在使用该集合的过程中&#xff0c;需要程序员明确知道存储每个元素的数据类型&#xff0c;否则很容易引…

mysql中的实现字段或字符串拼接的三种方式

一、CONCAT函数concat函数是将多个字段或字符串拼接为一个字符串&#xff1b;但是字符串之间没有任何分隔。concat函数官方介绍-- CONCAT函数的语法如下&#xff1a; CONCAT(str1,str2,...)1.1、拼接非空字段或字符串SELECT CONCAT(字段1,字段2,字段3,...) from 表名;-- 拼接表…

C#构建Web服务项目实战(一)

概述本文通过VS2017&#xff0c;利用C#语言构建一个Web应用项目&#xff08;旧的ASP.NETWeb应用&#xff0c;非微软最新的.NETCore&#xff09;&#xff0c;并演示了如何利用Windows的IIS服务发布项目&#xff08;网站&#xff09;&#xff0c;以及在发布项目&#xff08;允许用…

C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(三)

C语言及算法设计课程实验三&#xff1a;最简单的C程序设计——顺序程序设计&#xff08;三&#xff09;一、实验目的二、 实验内容2.3、计算存款利息三、 实验步骤3.3、顺序程序设计实验题目3&#xff1a;计算存款利息的实验步骤3.3.1、变量的声明3.3.2、变量的赋值3.3.3、计算…

递归分治时间复杂度主定理法

记录一下以前博客的证明过程&#xff0c;补充一下之前的结论 在算法导论中lgn一般指2为底的对数n&#xff0c;特此说明 以前写的博客记录了一下分治递归时间复杂度的结论&#xff0c;发现少了一个正则条件&#xff0c;而且也不覆盖所有的一般情况 https://blog.csdn.net/qq_1…

乌鸦安全2022年度文章合集

说明 乌鸦安全2022年精选原创文章合集&#xff0c;基本上大部分都是原创&#xff0c;当然还有一部分文章由其他师傅投稿提供&#xff0c;在此感谢各位师傅的投稿和帮助&#xff01; 乌鸦安全2021年度文章合集 你可以在这里找到我&#xff1a; GitHub&#xff1a;https://gi…

开源的工作流都有哪些特征?

开源的工作流是什么&#xff1f;都有什么样的特征和优势特点&#xff1f;众所周知&#xff0c;随着现代化办公管理的兴起&#xff0c;工作效率高的低代码开发平台涌上前线&#xff0c;成为很多企业实现数字化转型和做好数据管理的重要系统。这篇文章主要是围绕开源的工作流方面…

记一次2022某地HVV中的逆向分析

声明&#xff1a;本文仅限于技术讨论与分享&#xff0c;严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负&#xff0c;与本号及原作者无关。 前言 事情是这样的&#xff0c;国庆前期某地HVV&#xff0c;所以接到了客户通知他们收到了钓鱼邮件想要溯源 直接下载…

云视频会议系统私有化实践

点击上方“LiveVideoStack”关注我们▲扫描图中二维码或点击阅读原文▲了解音视频技术大会更多信息编者按&#xff1a;云视频会议系统支持多服务器动态集群部署&#xff0c;并提供多台高性能服务器&#xff0c;大大提升了会议稳定性、安全性、可用性。视频会议为用户大幅提高沟…

(Java高级教程)第三章Java网络编程-第一节2:网络编程必备网络知识2之网络协议分层

文章目录一&#xff1a;生活中的协议分层&#xff08;1&#xff09;生活中的分层1——汉堡包&#xff08;2&#xff09;生活中的分层2——打电话二&#xff1a;网络分层&#xff08;1&#xff09;OSI七层模型&#xff08;2&#xff09;TCP/IP分层模型三&#xff1a;OSI参考模型…

前端基础(六)_流程控制语句(if、if-else、if-else嵌套、switch)

流程控制语句主要分为 : 顺序结构&#xff1a;即按顺序执行代码 ;条件选择结构 ( 分支语句 )&#xff1a;包括 if-else 以及 switch;循环结构&#xff1a;包括 for循环&#xff0c;while&#xff0c;do-while,for-in 等;其他语句&#xff1a; break 和continue。 一、流程控制…

Java学习(23)Java一维数组概述

什么是数组 数组是相同类型的数据按顺序组成的一种引用数据类型。 数据类型分为基本数据类型和引用数据类型&#xff0c;引用数据类型分为类、接口、数组。要学习的内容 一维数组的声明、创建、初始化、元素的引用、长度。数组声明 语法格式&#xff1a; 数据类型[] 数组名; 数…

卡尔曼滤波原理公式详细推导过程[包括引出]

卡尔曼滤波在很多项目中都有用到&#xff0c;但是对于原理却很少有详细分析&#xff0c;而只是直接应用&#xff0c;在看完b站up主DR_CAN视频推导后自行推导一遍和查看其他资料后进行总结&#xff0c;将从最初的递归算法&#xff0c;利用数据融合&#xff0c;协方差矩阵&#x…

[vp] 2021 山东省赛 CDGHM

目录前言G. Grade Point Average ( 难度有先后)M. Matrix ProblemH. Adventurers GuildD.Dyson BoxC. Cat Virus前言 打满 2个小时30分钟 基本都在做题 体验非常好 传送门 : https://codeforces.com/gym/103118 G. Grade Point Average ( 难度有先后) 题意 : 让你求sum/ns…

UG/NX二开Siemens官方实例解析 4.4 EX_Curve_ProjCurves(创建投影曲线)

前言 本系列文章主要讲解NXOpen UF API&#xff08;简称ufun函数&#xff09;的使用&#xff0c;之前看教学视频大都建议用ufun进行开发&#xff0c;这里西门子官方还专门给了一套系列文章来讲&#xff0c;说明官方也是特别推崇ufun。 本人从事二开也有一段时间了&#xff0c;我…