Java零基础-集合:遍历

哈喽,各位小伙伴们,你们好呀,我是喵手。

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

在Java中,集合是一种常用的数据结构,用于存储和操作一组对象。在实际开发中,我们经常需要对集合进行遍历,以便对集合中的元素进行操作或者取得特定的数据。本文将介绍Java中集合的遍历方法。

摘要

本文将介绍Java中常用的集合遍历方法,包括使用for循环遍历、使用迭代器遍历以及使用Java 8的Lambda表达式遍历。同时,还将介绍集合的应用场景案例、优缺点分析以及类代码方法的介绍。

简介

在Java中,集合是一种用于存储和操作一组对象的容器。Java提供了多种集合类,包括List、Set和Map等。在实际开发中,我们经常需要对集合进行遍历操作,以便对集合中的元素进行处理或者获取特定的数据。

源代码解析

使用for循环遍历集合

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");for(String item : list){System.out.println(item);
}

上述代码中,通过使用for循环和冒号运算符,可依次遍历集合中的元素,并将每个元素赋值给变量item,然后对每个元素进行操作。

使用迭代器遍历集合

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){String item = iterator.next();System.out.println(item);
}

上述代码中,通过调用集合的iterator()方法获取迭代器对象,然后使用while循环和next()方法依次获取集合中的元素,并对每个元素进行操作。

使用Java 8的Lambda表达式遍历集合

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");list.forEach(item -> System.out.println(item));

上述代码中,使用集合的forEach()方法和Lambda表达式遍历集合,对每个元素执行指定的操作。

应用场景案例

集合的遍历在实际开发中具有广泛的应用场景,以下是一些常见的应用场景案例:

  • 遍历List集合查找特定元素。
  • 遍历Set集合进行去重操作。
  • 遍历Map集合获取键值对进行处理。

优缺点分析

优点

  • 简单直观:集合的遍历方法使用简单,易于理解和使用。
  • 灵活多样:Java提供了多种集合遍历的方法,开发者可以根据实际需求选择最适合的方法。
  • 高效性能:Java的集合类在底层实现上充分考虑了效率问题,因此集合的遍历操作通常具有较高的性能。

缺点

  • 遍历过程中无法修改集合:在使用for-each循环遍历集合时,无法对集合进行修改操作。
  • 迭代器的使用有一定限制:使用迭代器遍历集合时,只能通过迭代器提供的方法对集合进行操作,不能直接修改集合本身。

类代码方法介绍

List

  • void add(int index, E element):在指定位置插入指定元素。
  • E get(int index):返回指定位置的元素。
  • int indexOf(Object o):返回指定元素第一次出现的位置。
  • boolean remove(Object o):移除指定元素。
  • E set(int index, E element):替换指定位置的元素。

Set

  • boolean add(E e):添加指定元素到集合中。
  • boolean contains(Object o):判断集合是否包含指定元素。
  • boolean remove(Object o):移除指定元素。
  • int size():返回集合的大小。
  • void clear():清空集合中的所有元素。

Map

  • V get(Object key):返回与指定键关联的值。
  • boolean containsKey(Object key):判断是否包含指定键。
  • boolean containsValue(Object value):判断是否包含指定值。
  • V put(K key, V value):将指定的键值对添加到集合中。
  • V remove(Object key):移除指定键的映射关系。

Java代码测试用例

使用for循环遍历List集合

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");for(String item : list){System.out.println(item);
}

使用迭代器遍历Set集合

Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);Iterator<Integer> iterator = set.iterator();
while(iterator.hasNext()){int item = iterator.next();System.out.println(item);
}

使用Lambda表达式遍历Map集合

Map<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
map.put("C++", 3);map.forEach((key, value) -> System.out.println(key + ": " + value));

全文小结

本文介绍了Java中集合的遍历方法,包括使用for循环、迭代器和Lambda表达式进行遍历,并给出了具体的Java代码测试用例。同时,还对集合的应用场景、优缺点进行了分析,并介绍了List、Set和Map等集合类的常用方法。

总结

集合的遍历在Java开发中经常使用,能够方便地对集合中的元素进行操作和获取特定的数据。根据实际需求,可以选择最合适的遍历方法。通过本文的学习,希望读者能够掌握集合的遍历方法,并能在实际开发中灵活应用。

… …

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

… …

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

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

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

相关文章

数据结构——第5章 树和二叉树

1 二叉树 二叉树和树都属于树形结构&#xff0c;但两者互不包含。即二叉树不是特殊的树。 1.1 二叉树的基本概念 1.2 二叉树的顺序存储 仅适用于完全二叉树 #define MaxSize 100 typedef int ElemType; typedef struct TreeNode{ElemType value;//结点中的数据元素bool isE…

根据疾病名生成病例prompt

prompt 请根据疾病名&#xff1a;" disease_name " 为我生成一份病历。下面是病历内容的要求&#xff1a;病例应严格包含如下几项: 性别&#xff0c;年龄&#xff0c;疾病名&#xff08;必须是" disease_name "&#xff09;&#xff0c;主诉&#xff…

使用Spark单机版环境

在Spark单机版环境中&#xff0c;可通过多种方式进行实战操作。首先&#xff0c;可使用特定算法或数学软件计算圆周率π&#xff0c;并通过SparkPi工具验证结果。其次&#xff0c;在交互式Scala版或Python版Spark Shell中&#xff0c;可以进行简单的计算、打印九九表等操作&…

Object Detection--Loss Function:从IoU到CIoU

本篇总结Loss Function中的IoU系列代码。 1. IoU 交并集&#xff0c;两个框交集面积除以并集面积。&#xff08;论写写画画的重要性&#xff09;&#xff08;找原文看看&#xff09; """ box1[x1, y1, x2, y2] box2[x1, y1, x2, y2] return iou ""…

【WEEK5】 【DAY2】文件上传下载【中文版】

2024.3.26 Tuesday 目录 10.文件的上传和下载10.1.准备工作10.2.基础配置10.2.1.新建名为springmvc-08-file的module10.2.2.新建controller文件夹&#xff0c;applicationContext.xml文件 10.3.文件上传10.3.1.在本模块的pom.xml中导入文件上传的jar包&#xff1a;commons-file…

中国土壤总氮含量空间分布数据

总氮&#xff0c;简称为TN&#xff0c;水中的总氮含量是衡量水质的重要指标之一。总氮的定义是水中各种形态无机和有机氮的总量。包括NO3-、NO2-和NH4等无机氮和蛋白质、氨基酸和有机胺等有机氮&#xff0c;以每升水含氮毫克数计算。常被用来表示水体受营养物质污染的程度。 中…

机械结构篇之四足机器人身体设计

欢迎关注微信公众号 “四足机器人研习社”&#xff0c;本公众号的文章和资料和四足机器人相关&#xff0c;包括行业的经典教材、行业资料手册&#xff0c;同时会涉及到职业知识学习及思考、行业发展、学习方法等一些方面的文章。 目录 1.躯干 2.腿部结构 a.轮腿结合式 …

LLMs之Grok-1:run.py文件解读—运行语言模型实现推理—即基于用户的输入文本利用grok_1语言模型来生成文本

LLMs之Grok-1&#xff1a;run.py文件解读—运行语言模型实现推理—即基于用户的输入文本利用grok_1语言模型来生成文本 目录 run.py文件解读—运行语言模型实现推理—即基于用户的输入文本利用grok_1语言模型来生成文本 概述 1、加载预训练的语言模型 grok_1 1.1、定义模型…

Python之数据分析二

一、Python之数据类型 当讲解Python中的数据类型时&#xff0c;可以通过代码来示范每种数据类型的特点和用法。以下是Python中常见的几种数据类型&#xff1a; 1.数字&#xff08;Numbers&#xff09;类型 包括整数&#xff08;int&#xff09;、浮点数&#xff08;float&am…

Net8 ABP VNext完美集成FreeSql、SqlSugar,实现聚合根增删改查,完全去掉EFCore

没有基础的&#xff0c;请参考上一篇 彩蛋到最后一张图里找 参考链接 结果直接上图&#xff0c;没有任何业务代码 启动后&#xff0c;已经有了基本的CRUD功能&#xff0c;还扩展了批量删除&#xff0c;与动态查询 动态查询截图&#xff0c;支持分页&#xff0c;排序 实现原理…

强化学习及其在机器人任务规划中的进展与分析

源自&#xff1a;模式识别与人工智能 作者&#xff1a;张晓明 高士杰 姚昌瑀 褚誉 彭硕 “人工智能技术与咨询” 发布 摘要 强化学习可以让机器人通过与环境的交互,学习最优的行动策略,是目前机器人领域关注的重要前沿方向之一.文中简述机器人任务规划问题的形式化建模…

《青少年成长管理2024》 003 “你将面临一个怎样的世界”

《青少年成长管理2024》 003 “你将面临一个怎样的世界” 一、审视你将面临的世界二、机器替代人类劳动三、人工智能将给这个世界带来怎样的影响本节摘要 一个生命降临世间&#xff0c;首要的任务是充分理解所面临的现实世界&#xff0c;这是做出明智选择的基础。机器替代人类的…

Unity编辑器功能将AB资源文件生成MD5码

将路径Application.dataPath/ArtRes/AB/PC文件夹下所有的Ab包文件生成MD5吗&#xff0c;通过文件名 文件长度MD5‘|’的格式拼接成字符串写入到资源对比文件abCompareInfo.txt中。 将路径pathFile扥文件生成MD5码

STM32之HAL开发——DMA转运串口数据

DMA功能框图&#xff08;F1系列&#xff09; 如果外设要想通过 DMA 来传输数据&#xff0c;必须先给 DMA 控制器发送 DMA 请求&#xff0c; DMA 收到请求信号之后&#xff0c;控制器会给外设一个应答信号&#xff0c;当外设应答后且 DMA 控制器收到应答信号之后&#xff0c;就会…

实现ls -l 功能,index,rindex函数的使用

index();----------------------------------------------------------------- index第一次遇到字符c&#xff0c;rindex最后一次遇到字符c&#xff0c;返回值都是从那个位置开始往后的字符串地址 #include <stdio.h> #include <sys/types.h> #include <pwd.h&g…

[HackMyVM]靶场Crossbow

kali:192.168.56.104 靶机:192.168.56.136 端口扫描 # nmap 192.168.56.136 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 22:17 CST Nmap scan report for crossbow.hmv (192.168.56.136) Host is up (0.0057s latency). Not shown: 997 closed tcp…

反射率光纤光谱仪检测汽车后视镜反射率

反射率光纤光谱仪是一种用于测量材料表面反射率的精密仪器&#xff0c;它通过光纤传输光信号&#xff0c;并利用光谱仪进行分析&#xff0c;以确定材料的光学特性。反射率光纤光谱仪的工作原理基于相对反射率的计算&#xff0c;它涉及到光源、光纤、光谱仪等关键组件。 后视镜能…

牛客小白月赛89(A~C)

小白赛怎么这么难打&#xff0c;是什么小白&#xff0c;我的世界小白吗。 A. 伊甸之花 给你一个数组 a&#xff0c;问你是否找出一个 不等于 a 的数组 b&#xff0c;满足 其中数值都要在 [1,m] 的范围内 直接在 a 数组上修改&#xff0c;可以发现如果改了 a[1],a[2]&#xff…

HTML(一)---【基础】

零.前言&#xff1a; 本文章对于HTML的基础知识处理的十分细节&#xff0c;适合从头学习的初学者&#xff0c;亦或是想要提升基础的前端工程师。 1.什么是HTML&#xff1f; HTML是&#xff1a;“超文本标签语言”&#xff08;Hyper Text Markup Language&#xff09; HTML不…

《Django项目》day4 -- 部署nginx与对接acapp

文章目录 1.增加容器的映射端口&#xff1a;80&#xff08;http&#xff09;与443&#xff08;https&#xff09;2.创建AcApp&#xff0c;获取域名、nginx配置文件及https证书3.修改django项目的配置4.配置uwsgi 1.增加容器的映射端口&#xff1a;80&#xff08;http&#xff0…