【遍历方法】浅析Java中字符串、数组、集合的遍历

目录

前言

字符串篇

1.1 使用 for 循环和 charAt 方法

1.2 使用增强 for 循环(forEach 循环)

1.3 使用 Java 8 的 Stream API

最终效果

数组篇

2.1 使用普通 for 循环

2.2 使用增强型 for 循环( forEach 循环)

2.3 使用 Arrays.asList 和 forEach 循环(仅适用于对象数组)

2.4 使用 Java 8 的Stream API

最终效果

集合篇

3.1 List、Set集合

3.1.1 使用普通 for 循环(Set 集合除外)

3.1.2 使用增强型 for 循环 (forEach 循环)

3.1.3 使用迭代器(Iterator)

3.1.4 使用 Java 8 的 Stream API

3.1.5 使用Lambda表达式和方法引用

最终效果

3.2 Map集合

3.2.1 遍历 “键” 集合

效果

3.2.2 遍历 “键值对”(Entry)

3.2.3 使用迭代器(Iterator)

3.2.4 使用 Java 8 的 Steam API

效果

注:手机端浏览本文章可能会出现 “目录”无法有效展示的情况,请谅解,点击侧栏目录进行跳转


前言

        在 Java 的学习过程和项目开发过程中,我们需要对 “字符串”、“数组”、“集合类(List、Set、Map)”等对象中的元素 “访问”、“筛选”、“处理” 等操作,不同的遍历方式使用于不同的场景和需求;接下来,我对 “字符串”、“数组”、“集合(List、Set、Map)”的常见遍历方法进行了归纳;

↓↓↓ 各位看官,请阅读下问 ↓ ↓↓


字符串篇

1.1 使用 for 循环和 charAt 方法

String str = "Hello,World!";for(int i = 0; i < str.length();i++){char c =str.charAt(i);System.out.print(c + "\t");
}

1.2 使用增强 for 循环(forEach 循环)

String str ="Hello,World!";for(char c : str.toCharArray()){System.out.print(c + "\t");
}

1.3 使用 Java 8 的 Stream API

将字符串转换为字符流,然后使用 forEach 方法进行处理

String str = "Hello, World!";str.chars().mapToObj(c -> (char) c).forEach(ch -> {System.out.print(ch + "\t");
});

最终效果

H	e	l	l	o	,	 	W	o	r	l	d	!

数组篇

2.1 使用普通 for 循环

int[] arr = {1, 2, 3, 4, 5};for (int i = 0; i < arr.length; i++) {int element = arr[i];System.out.print(element +"\t");
}

2.2 使用增强型 for 循环( forEach 循环)

int[] arr = {1, 2, 3, 4, 5};for (int element : arr) {System.out.print(element + "\t");
}

2.3 使用 Arrays.asList 和 forEach 循环(仅适用于对象数组)

Integer [] arr = {1, 2, 3, 4, 5};for (Integer element : Arrays.asList(arr)) {System.out.print(element + "\t");
}

2.4 使用 Java 8 的Stream API

int[] arr = {1, 2, 3, 4, 5};Arrays.stream(arr).forEach(element -> {System.out.print(element + "\t");
});

最终效果

1	2	3	4	5	

集合篇

3.1 List、Set集合

3.1.1 使用普通 for 循环(Set 集合除外)

List<String> list = new ArrayList<>();//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));//开始遍历
for (int i = 0; i < list.size(); i++) {String element = list.get(i);System.out.print(element + "\t");
}

3.1.2 使用增强型 for 循环 (forEach 循环)

List<String> list = new ArrayList<>();//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));//开始遍历
for (String element : list) {System.out.print(element + "\t");
}

3.1.3 使用迭代器(Iterator)

List<String> list = new ArrayList<>();//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));//开始遍历
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {String element = iterator.next();System.out.print(element + "\t");
}

3.1.4 使用 Java 8 的 Stream API

List<String> list = new ArrayList<>();//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));//开始遍历
list.stream().forEach(element -> {System.out.print(element + "\t");
});

3.1.5 使用Lambda表达式和方法引用

List<String> list = new ArrayList<>();//向集合中添加元素
String[] arr ={"1","3","5","7","9"};list.addAll(Arrays.asList(arr));//开始遍历
list.forEach(System.out::print); 

最终效果

1	3	5	7	9	

3.2 Map集合

3.2.1 遍历 “键” 集合

Map<String, Integer> map = new HashMap<>();// 添加元素到map中
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
map.put("key4", 4);
map.put("key5", 5);for (String key : map.keySet()) {Integer value = map.get(key);System.out.print(value +"\t");
}

效果

1	2	5	3	4	

3.2.2 遍历 “键值对”(Entry)

Map<String, Integer> map = new HashMap<>();// 添加元素到map中
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
map.put("key4", 4);
map.put("key5", 5);for (Map.Entry<String, Integer> entry : map.entrySet()) {String key = entry.getKey();Integer value = entry.getValue();System.out.print(key +":" + value +"\t");
}

3.2.3 使用迭代器(Iterator)

Map<String, Integer> map = new HashMap<>();// 添加元素到map中
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
map.put("key4", 4);
map.put("key5", 5);Iterator<String> keyIterator = map.keySet().iterator();
while (keyIterator.hasNext()) {String key = keyIterator.next();Integer value = map.get(key);System.out.print(key +":" + value +"\t");}

3.2.4 使用 Java 8 的 Steam API

Map<String, Integer> map = new HashMap<>();// 添加元素到map中
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
map.put("key4", 4);
map.put("key5", 5);map.keySet().stream().forEach(key -> {Integer value = map.get(key);System.out.print(key +":" + value +"\t");
});

效果

key1:1	key2:2	key5:5	key3:3	key4:4	

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

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

相关文章

解决:springboot项目访问hdfs文件提示guava版本不兼容

1、问题描述 版本说明&#xff1a;我用的hadoop版本&#xff1a;3.1.3 项目可以正常启动&#xff0c;但是调用访问hdfs的服务时候报错,报错消息如下&#xff1a;com.google.common.base.preconditions.checkArgument(ZL java/lang/String;Ljava/lang/Object:)V 原因分析&#x…

Flutter开发进阶之使用工具效率开发

Flutter开发进阶之使用工具效率开发 软件开发团队使用Flutter开发的原因通常是因为Flutter开发性能高、效率高、兼容性好、可拓展性高&#xff0c;作为软件PM来说主要考虑的是范围管理、进度管理、成本管理、资源管理、质量管理、风险管理和沟通管理等&#xff0c;可以看到Flu…

企业内部培训考试系统培训计划功能说明

培训计划是预设好的一套课程系列&#xff0c;包含课程和考试&#xff0c;分多个阶段&#xff0c;每完成一个阶段就会在学习地图上留下标记&#xff0c;让用户看到自己的努力成果&#xff0c;增强成就感&#xff0c;从而坚持完成课程。 企业内部培训考试系统中如何设置培训计划…

基于springboot的购物商城管理系统

1.项目简介 1.1 用户简介 用户主要分为管理员和用户端&#xff1a; 管理员&#xff1a; 管理员可以对后台数据进行管理、拥有最高权限、具体权限有登录后进行首页轮播图的配置管理、商品的配置、新品家具商城的配置管理、、家具商城分类管理配置、家具商城详情商品管理、用户…

react-面试题

一、组件基础 1. React 事件机制 <div onClick{this.handleClick.bind(this)}>点我</div> React并不是将click事件绑定到了div的真实DOM上&#xff0c;而是在document处监听了所有的事件&#xff0c;当事件发生并且冒泡到document处的时候&#xff0c;React将事…

网络安全JavaSE第二天(持续更新)

3. 基本数据与运算 3.6 运算符 3.6.1 算术运算符 在 Java 中&#xff0c;算术运算符包含&#xff1a;、-、*、/、% public class ArithmeticOperator { public static void main(String[] args) { int a 10; // 定义了一个整型类型的变量 a&#xff0c;它的值是 10 int b …

区块链推广海外市场怎么做,CloudNEO服务商免费为您定制个性化营销方案

随着区块链技术的不断发展和应用场景的扩大&#xff0c;区块链项目希望能够进入海外市场并取得成功已成为越来越多公司的目标之一。然而&#xff0c;要在海外市场推广区块链项目&#xff0c;需要采取有效的营销策略和措施。作为您的区块链项目营销服务商&#xff0c;CloudNEO将…

后端程序员入门react笔记(八)-redux的使用和项目搭建

一个更好用的文档 添加链接描述 箭头函数的简化 //简化前 function countIncreAction(data) {return {type:"INCREMENT",data} } //简化后 const countIncreAction data>({type:"INCREMENT",data })react UI组件库相关资料 组件库连接和推荐 antd组…

Python 多线程大批量处理文件小程序

说明 平时偶尔需要进行重复性的对文件进行重命名、格式转化等。假设以文件复制功能作为目标&#xff0c;设计一个小程序使用多线程对文件进行批量复制。&#xff08;其实以后主要目标是针对Realsense的raw文件进行批量的转化&#xff0c;并借助多线程加速&#xff09; 代码 i…

uv 必备的工具 ps ai 全家桶合集

非常稀有的资源 &#xff0c;必应搜索 易品资源yipinziyuan 可以找到

sqllab第二十关通关笔记

知识点&#xff1a; cookie注入 可以进行url解析错误注入传参位置 get请求post请求cookie传参 输入admin admin进行登录&#xff0c;抓取当前数据包 通过放包发现是一个302跳转的响应包&#xff0c;页面只有一个 I Love Cookies&#xff1b;没什么信息 通过点击页面上方的按钮…

若你有才能,最好能遇上识才之人,高俅发迹的故事很好诠释了千里马与伯乐的关系

若你有才能&#xff0c;最好能遇上识才之人&#xff0c;高俅发迹的故事很好诠释了千里马与伯乐的关系 其实&#xff0c;“千里马”和“伯乐”都是中国古代传说里的角色。伯乐是古代一个善于相马&#xff08;识别马的好坏&#xff09;的人&#xff0c;而“千里马”则是指一匹能跑…

前端学习之css样式 背景样式、字体样式、列表样式、边框样式、内外边距元素属性的转换

背景样式 html文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>背景样式</title><link rel"stylesheet" href"../css/3.1背景样式.css"> </head> <bo…

python之万花尺

1、使用模块 import sys, random, argparse import numpy as np import math import turtle import random from PIL import Image from datetime import datetime from math import gcd 依次使用pip下载即可 2、代码 import sys, random, argparse import numpy as np imp…

通俗易懂的Python循环讲解

循环用于重复执行一些程序块。从上一讲的选择结构&#xff0c;我们已经看到了如何用缩进来表示程序块的隶属关系。循环也会用到类似的写法。 for循环 for循环需要预先设定好循环的次数(n)&#xff0c;然后执行隶属于for的语句n次。 基本构造是 for 元素 in 序列: statemen…

云原生 IaaS 服务:构建下一代云计算基础设施

随着云计算技术的不断演进&#xff0c;云原生成为了现代应用开发和部署的主流趋势。在当今这个快速变化的数字化时代&#xff0c;企业越来越需要灵活、可伸缩、自动化的基础设施来支持他们的业务需求。而云原生 IaaS&#xff08;Infrastructure as a Service&#xff09;服务则…

html--宠物

文章目录 htmljscss html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>CodePen - Spaceworm</title><script> window.requestAnimFrame (function() {return (window.requestAnimat…

[HDCTF 2023]enc

32位 这里后面运行这个程序居然要 Visual Studio&#xff0c;不然运行不了 IDA打开&#xff0c;直接锁定main函数 看见v9&#xff0c;四个32位&#xff0c;就想到了tea加密 、 标准tea from ctypes import * #tea def decrypt(v, k):v0 c_uint32(v[0])v1 c_uint32(v[1])…

代码随想录阅读笔记-字符串【反转字符串】

题目 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印…

未来已来:科技驱动的教育变革

我们的基础教育数百年来一成不变。学生们齐聚在一个物理空间&#xff0c;听老师现场授课。每节课时长和节奏几乎一致&#xff0c;严格按照课表进行。老师就像“讲台上的圣人”。这种模式千篇一律&#xff0c;并不适用于所有人。学生遇到不懂的问题&#xff0c;只能自己摸索或者…