Java学习教程,从入门到精通,Java for-each遍历循环(16)

1.Java for-each遍历循环

以下是一个简单的Java程序示例,展示了如何使用for-each循环(也称为增强型for循环)来遍历一个数组或集合。在这个例子中,我们将遍历一个整数数组并打印每个元素。

public class ForEachLoopExample {
    public static void main(String[] args) {
        // 定义一个整数数组
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        // 使用for-each循环遍历数组
        for (int number : numbers) {
            // 打印当前元素
            System.out.println(number);
        }

        // 定义一个字符串列表
        java.util.List<String> fruits = java.util.Arrays.asList("Apple", "Banana", "Cherry");

        // 使用for-each循环遍历列表
        for (String fruit : fruits) {
            // 打印当前元素
            System.out.println(fruit);
        }
    }
}

代码解释

  1. 数组遍历

    • 我们首先定义了一个整数数组numbers,包含从1到10的整数。
    • 然后,我们使用for-each循环来遍历这个数组。for (int number : numbers)这行代码表示对于数组numbers中的每个元素,都将其值赋给变量number,并执行循环体内的代码。
    • 在循环体内,我们使用System.out.println(number);来打印当前元素的值。
  2. 集合遍历

    • 接下来,我们定义了一个字符串列表fruits,使用java.util.Arrays.asList方法将几个字符串元素放入列表中。
    • 同样地,我们使用for-each循环来遍历这个列表。for (String fruit : fruits)这行代码表示对于列表fruits中的每个元素,都将其值赋给变量fruit,并执行循环体内的代码。
    • 在循环体内,我们使用System.out.println(fruit);来打印当前元素的值。

注意事项

  • for-each循环适用于数组和实现了Iterable接口的集合(如ListSet等)。
  • 在使用for-each循环时,我们不需要手动控制循环的起始、结束条件和迭代变量,这使得代码更加简洁和易读。
  • 但是,for-each循环不适合需要修改集合元素或获取元素索引的场景。在这些情况下,应该使用传统的for循环或Iterator

当然可以,以下是一些使用Java for-each循环的实际例子,涵盖了数组和集合的遍历。

数组遍历的例子

例子1:遍历整数数组
public class ArrayForEachExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};

        // 使用for-each循环遍历数组
        for (int number : numbers) {
            System.out.println("Number: " + number);
        }
    }
}

在这个例子中,我们定义了一个整数数组numbers,并使用for-each循环遍历它。循环体内的代码将打印出数组中的每个元素。

例子2:遍历字符串数组
public class StringArrayForEachExample {
    public static void main(String[] args) {
        String[] fruits = {"Apple", "Banana", "Cherry"};

        // 使用for-each循环遍历数组
        for (String fruit : fruits) {
            System.out.println("Fruit: " + fruit);
        }
    }
}

在这个例子中,我们定义了一个字符串数组fruits,并使用for-each循环遍历它。循环体内的代码将打印出数组中的每个字符串元素。

集合遍历的例子

例子1:遍历ArrayList
import java.util.ArrayList;
import java.util.List;

public class ListForEachExample {
    public static void main(String[] args) {
        List<String> colors = new ArrayList<>();
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");

        // 使用for-each循环遍历ArrayList
        for (String color : colors) {
            System.out.println("Color: " + color);
        }
    }
}

在这个例子中,我们创建了一个ArrayList对象colors,并向其中添加了一些字符串元素。然后,我们使用for-each循环遍历这个列表,并打印出每个元素。

例子2:遍历HashSet
import java.util.HashSet;
import java.util.Set;

public class SetForEachExample {
    public static void main(String[] args) {
        Set<String> countries = new HashSet<>();
        countries.add("China");
        countries.add("USA");
        countries.add("Germany");

        // 使用for-each循环遍历HashSet
        for (String country : countries) {
            System.out.println("Country: " + country);
        }
    }
}

在这个例子中,我们创建了一个HashSet对象countries,并向其中添加了一些字符串元素。然后,我们使用for-each循环遍历这个集合,并打印出每个元素。由于HashSet不保证元素的顺序,因此打印出的元素顺序可能与添加顺序不同。

注意事项

  • 在使用for-each循环遍历集合时,集合对象必须实现了Iterable接口。Java中的标准集合类(如ArrayListHashSet等)都实现了这个接口。
  • for-each循环简化了集合的遍历过程,使代码更加简洁和易读。但是,它不适合需要修改集合元素或获取元素索引的场景。在这些情况下,应该使用传统的for循环、Iterator或增强的for循环(如果适用)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最长方连续方波信号

更多关于刷题的内容欢迎订阅我的专栏华为刷题笔记 该专栏题目包含两部分&#xff1a; 100 分值部分题目 200 分值部分题目 所有题目都会陆续更新&#xff0c;订阅防丢失 题目描述 输入一串方波信号&#xff0c;求取最长的完全连续交替方波信号&#xff0c;并将其输出&#x…

ARB链挖矿DApp系统开发模式定制

在区块链生态中&#xff0c;挖矿作为一种获取加密资产的方式&#xff0c;越来越受到关注。ARB链凭借其高效的性能和灵活的智能合约系统&#xff0c;成为了开发挖矿DApp的理想平台。本文将探讨ARB链挖矿DApp的开发模式定制&#xff0c;包括架构设计、功能实现以及最佳实践。 ARB…

YoloV8改进策略:Block改进|RFE模块,提高小物体的识别精度|即插即用|代码+修改过程

摘要 论文介绍 本文介绍了一种基于YOLOv5的人脸检测方法,命名为YOLO-FaceV2。该方法旨在解决人脸检测中的尺度变化、简单与困难样本不平衡以及人脸遮挡等问题。通过引入一系列创新模块和损失函数,YOLO-FaceV2在WiderFace数据集上取得了优异的表现,特别是在小物体、遮挡和困…

使用 Elasticsearch 进行语义搜索

Elasticsearch 是一款功能强大的开源搜索引擎&#xff0c;可用于全文搜索、分析和数据可视化。传统上&#xff0c;Elasticsearch 以其执行基于关键字/词汇的搜索的能力而闻名&#xff0c;其中文档基于精确或部分关键字匹配进行匹配。然而&#xff0c;Elasticsearch 已经发展到支…

计算机网络:网络层 —— 虚拟专用网 VPN

文章目录 虚拟专用网 VPN 概述内联网 VPN外联网 VPN 虚拟专用网 VPN 概述 虚拟专用网&#xff08;Virtual Private Network&#xff0c;VPN&#xff09;&#xff1a;利用公用的因特网作为本机构各专用网之间的通信载体&#xff0c;这样形成的网络又称为虚拟专用网。 出于安全…

C语言函数嵌套调用

函数嵌套调用就是在一个函数中调用另一个函数&#xff1b; 看一个例子&#xff1b; max2函数返回2个整数中大的一个&#xff1b;max4中调用max2&#xff0c;实现返回4个整数中最大的一个&#xff1b; int max2(int, int); int max4(int, int, int, int);......void CCjjyyV…

C++:继承及其相关问题

继承的定义 继承机制是⾯向对象程序设计实现代码复⽤的重要⼿段&#xff0c;它允许我们在保持原有类特性的基础上进⾏扩展&#xff0c;增加⽅法 (成员函数) 和属性 (成员变量)&#xff0c;从而产⽣的类&#xff0c;这样的类称为派⽣类&#xff0c;也称为子类。而这样的类就成为…

Centos7.9 x86架构部署

一、部署环境 表 1‑1 环境服务版本号系统centos7.9_2009运行环境1JDK1.8_321前端WEBNginx1.14数据库postgresqlpostgresql13postgis3.1pgrouting3.1消息队列rabbitmq3.8.16运行环境2erlang23.3.3.1 二、部署JDK 2.1下载JDK安装包 官网下载JDK8 官网地址&#xff1a; https…

【uniapp3】分享一个自己写的h5日历组件

简言 分享一下自己基于uniapp写的日历组件。如果不太满足你的需求&#xff0c;可以自己改造。 日历 实现分析&#xff1a; 页面显示 - 分为顶部显示和日历显示&#xff0c;我这里做了多行和单行显示两种情况&#xff0c;主要是当时看着手机的日历做的&#xff0c;手机上的…

Nginx安装配置详解

Nginx Nginx官网 Tengine翻译的Nginx中文文档 轻量级的Web服务器&#xff0c;主要有反向代理、负载均衡的功能。 能够支撑5万的并发量&#xff0c;运行时内存和CPU占用低&#xff0c;配置简单&#xff0c;运行稳定。 写在前 uWSGI与Nginx的关系 1. 安装 Windows 官网 Stabl…

Java版企电子招标采购系统源业码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis

功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查看所…

MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升

在当今矿业行业&#xff0c;随着全球对资源需求的不断增加和开采难度的逐步提升&#xff0c;传统的作业方式面临着越来越多的挑战。露天矿山开采&#xff0c;因其大规模的作业环境和复杂的地形特点&#xff0c;面临着作业人员的安全风险、设备调度的高难度以及资源利用率低下等…

【Web.路由】——路由模板

路由模板负责根据规则生成URL&#xff0c;从而使得请求可以正常访问到资源。 总之就是——》》》 规范如何写一个url&#xff0c;并且命名以方便进行管理。 在Asp.net core中的Http管道机制&#xff0c;UseRouting()和 UseEndpoints()这两个中间件来实现整个路由系统。关于asp…

c加加11第二弹~

1lambda 1.1.lambda表达式书写格式 [capture-list] (parameters) mutable -> return-type { statement} 1.2lambda表达式各部分说明 [capture-list] : 捕捉列表&#xff0c;该列表总是出现在lambda函数的开始位置&#xff0c;编译器根据[]来判断接下来的代码是否为lamb…

记录|多线程和异步简单理解

目录 前言一、单线程二、多线程-Thread多线程是都多少个的时候会导致性能变差 三、多线程-Task类Task的优势 四、异步- awaitawait注意&#xff1a;多个Task Run()天剑await后&#xff0c;变成了同步执行解决方法 更新时间 前言 参考视频&#xff1a;C#基础教程 多线程编程入门…

凸极式发电机的相量图分析和计算,内功率因数角和外功率因数角和功角的定义。

图1&#xff1a;同步发电机稳态相量图 若发电机为凸极式&#xff0c;由于凸极机正、交轴同步电抗不等&#xff0c;即xd≠xq&#xff0c;因此必须先借助虚构电动势 E ˙ Q E ˙ q − ( x d − x q ) I ˙ d \dot{E}_Q\dot{E}_q-(x_d-x_q)\dot{I}_d E˙Q​E˙q​−(xd​−xq​)…

C语言原码、反码和补码的详解

C语言原码、反码和补码的详解 放在最前面的1、前言正数的原码、反码和补码负数的原码、反码和补码 2、整数的原码&#xff08;2.1&#xff09;原码的定义&#xff08;2.2&#xff09;计算原码 3、整数的反码&#xff08;3.1&#xff09;反码的定义&#xff08;3.2&#xff09;计…

idea 导入Spring源码遇到的坑并解决

1.下载相关文件 通过百度网盘分享的文件&#xff1a;Spring 链接&#xff1a;https://pan.baidu.com/s/1r9rkGOCaY9SFn9ecng5cIg?pwd8888 提取码&#xff1a;8888 2.配置gradle环境 gradle下载地址 需要翻墙下 https://services.gradle.org/distributions/ 我选择的是 grad…

Redis-“自动分片、一定程度的高可用性”(sharding水平拆分、failover故障转移)特性(Sentinel、Cluster)

文章目录 零、写在前面一、水平拆分(sharding/分片)、故障转移(failover)机制介绍水平拆分&#xff08;Sharding&#xff09;故障转移机制 二、Redis的水平拆分的机制有关的配置1. 环境准备2. 配置文件配置3. 启动所有Redis实例4. 创建集群5. 测试集群读/写6. 集群管理 三、Red…

C++STL详解(九)map和set的使用

一.关联式容器的介绍 CSTL包含了序列式容器和关联式容器&#xff1a; 序列式容器里面存储的是元素本身&#xff0c;其底层是线性的数据结构&#xff0c;就譬如我们之前学习的vector&#xff0c;list&#xff0c;deque等等。关联式容器里面存储的是<key,value>的键值对&…