Java数组的遍历

目录

  • 数组的遍历
    • 使用for循环遍历数组
    • 使用for-each循环遍历数组
    • 使用while循环和迭代器遍历数组
    • 使用Java 8的流API遍历数组
  • 数组遍历的应用
    • 求数组中的最大值
    • 查询数组中指定位置的元素
    • 将查指定元素对应的索引的功能提取为方法
    • 添加数组元素
    • 删除数组元素

数组的遍历

Java数组的遍历可以使用循环结构来实现。以下是一些常见的遍历数组的方法:

使用for循环遍历数组

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

使用for-each循环遍历数组

int[] arr = {1, 2, 3, 4, 5};
for (int element : arr) {System.out.println(element);
}

使用while循环和迭代器遍历数组

int[] arr = {1, 2, 3, 4, 5};
Iterator<Integer> iterator = Arrays.asList(arr).iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}

使用Java 8的流API遍历数组

int[] arr = {1, 2, 3, 4, 5};
Arrays.stream(arr).forEach(System.out::println);

数组遍历的应用

求数组中的最大值

在Java中,你可以使用一个简单的for循环来遍历数组并找到最大值。以下是一个示例代码:

public class Main {public static void main(String[] args) {int[] arr = {1, 5, 9, 3, 7};int maxValue = arr[0];  // 假设第一个元素是最大的for (int i = 1; i < arr.length; i++) {if (arr[i] > maxValue) {maxValue = arr[i];  // 如果当前元素大于maxValue,则更新maxValue}}System.out.println(maxValue);  // 输出: 9}
}

在这段代码中,我们假设数组的第一个元素是最大的。然后,我们遍历数组的其余部分,如果当前元素大于maxValue,则更新maxValue。最后,maxValue就是数组中的最大值。

查询数组中指定位置的元素

在Java中,如果你想查询数组中指定位置的元素,你可以使用数组索引。数组索引从0开始,所以如果你想查询第n个元素,你应该使用索引n-1。以下是一个简单的示例:

public class Main {public static void main(String[] args) {int[] arr = {1, 5, 9, 3, 7};int index = 2;  // 指定位置int element = arr[index];  // 查询指定位置的元素System.out.println(element);  // 输出: 9}
}

在这个例子中,我们创建了一个包含5个元素的整数数组。然后,我们指定要查询的位置(在这个例子中是第2个位置),并使用该位置的索引来获取该位置的元素。最后,我们将元素打印出来,以验证我们的查询结果。

将查指定元素对应的索引的功能提取为方法

public class TestArray01 {  public static void main(String[] args) {  // 给定一个数组:  int[] arr = {12, 34, 56, 7, 3, 56};  //           0  1  2  3 4  5  // 功能:查询元素999对应的索引:  // 调用方法:  int index = getIndex(arr, 999);  // 后续对index的值进行判断:  if (index != -1) {  System.out.println("元素对应的索引:" + index);  } else { // index == -1  System.out.println("查无此数!");  }  }  /*  定义一个方法:查询数组中指定的元素对应的索引:  不确定因素:哪个数组,哪个指定元素  (形参)  返回值:索引  */  public static int getIndex(int[] arr, int ele) {  int index = -1; // 这个初始值只要不是数组的索引即可  for (int i = 0; i < arr.length; i++) {  if (arr[i] == ele) {  index = i; // 只要找到了元素,那么index就变成为i  break; // 只要找到这个元素,循环就停止  }  }  return index;  }  
}

在这里插入图片描述

添加数组元素

import java.util.Scanner;public class TestArray02 {public static void main(String[] args) {// 功能:给定一个数组,在数组下标为5的位置上添加一个元素91// 1. 给定一个数组:int[] arr = {12, 34, 56, 7, 3, 10, 55, 66, 77, 88, 999, 89};//            0   1   2  3  4   5// 2. 输出增加元素前的数组:System.out.print("增加元素前的数组:");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else { // i == arr.length-1 最后一个元素不用加,System.out.print(arr[i]);}}// 从键盘接收数据:Scanner sc = new Scanner(System.in);System.out.println("请录入你要添加元素的指定下标:");int index = sc.nextInt();System.out.println("请录入你要添加的元素:");int ele = sc.nextInt();// 3. 增加元素// 调用方法:insertEle(arr, index, ele);// 4. 输出增加元素后的数组:System.out.print("\n增加元素后的数组:");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else { // i == arr.length-1 最后一个元素不用加,System.out.print(arr[i]);}}}/*提取一个添加元素的方法:在数组的指定位置上添加一个指定的元素。在哪个数组的哪个位置添加哪个元素!不确定因素:形参:哪个数组,哪个位置,哪个元素返回值:无*/public static void insertEle(int[] arr, int index, int ele) {for (int i = arr.length - 1; i >= index; i--) {arr[i] = arr[i - 1];}arr[index] = ele;}
}

在这里插入图片描述

删除数组元素

import java.util.Arrays;public class TestArray03 {public static void main(String[] args) {// 功能:给定一个数组,删除元素4:// 1. 给定一个数组:int[] arr = {1, 2, 4, 4, 5, 4, 6, 4, 8, 9};// 2. 输出删除前的数组:System.out.println("删除元素前的数组:" + Arrays.toString(arr));// 找到要删除的元素对应的索引即可:int index = -1;for (int i = 0; i < arr.length; i++) {if (arr[i] == 4) {index = i;break;}}// 3. 删除if (index != -1) {for (int i = index; i < arr.length - 1; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0;} else { // index == -1System.out.println("根本没有你要删除的元素!");}// 4. 输出删除后的数组:System.out.println("删除元素后的数组:" + Arrays.toString(arr));}
}

在这里插入图片描述

这个例子中的数组包含多个重复的元素4,我们将删除第一个出现的元素4。代码执行后,将输出删除元素后的数组。请注意,这里我们使用0来填充删除元素后的位置,以确保数组中的元素数量保持不变。

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

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

相关文章

【Kafka专栏】windows搭建Kafka环境 详细教程(01)

文章目录 01 引言1.1 官网地址1.2 概述简介1.3 kafka与zookeeper 02 部署zookeeper2.1 下载组件包2.2 解压压缩包&#xff08;1&#xff09;解压到任意路径&#xff08;2&#xff09;解压后的目录创建数据目录data 2.3 修改zoo配置2.4 设置系统变量2.5 启动zookeepe服务&#x…

小程序中picker多列选择器

需求&#xff1a;实现类似省市联动的效果&#xff0c;选择第一列后&#xff0c;第二列数据变化 html部分: <view class"section"><view>多列选择器</view><picker mode"multiSelector" bindchange"bindMultiPickerChange"…

自然语言处理(NLP)—— Dialogflow ES聊天机器人

1. 背景介绍 这个实验室的目标是让你了解并使用Google的Dialogflow服务。Dialogflow是一个可以让你创建聊天机器人的服务&#xff0c;这个过程不需要或者只需要很少的编程技能。 1.1 账号的创建 为了完成这个实验室&#xff0c;你需要在以下网站上创建账号&#xff1a…

完整的 HTTP 请求所经历的步骤及分布式事务解决方案

1. 对分布式事务的了解 分布式事务是企业集成中的一个技术难点&#xff0c;也是每一个分布式系统架构中都会涉及到的一个东西&#xff0c; 特别是在微服务架构中&#xff0c;几乎可以说是无法避免。 首先要搞清楚&#xff1a;ACID、CAP、BASE理论。 ACID 指数据库事务正确执行…

MySql主从同步,同步SQL_ERROR 1032解决办法

1.登录从库 mysql -u root -p 2.输入命令查看状态 SHOW SLAVE STATUS\G; 3.找到对应的错误数据位置 Slave_IO_Running: YesSlave_SQL_Running: NoReplicate_Do_DB: app_push_centerReplicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Tabl…

查看域控组策略是否在客户端生效

要查看域控制器上的组策略是否已在客户端生效&#xff0c;可以按照以下步骤操作&#xff1a; 使用 RSOP (Resultant Set of Policy): 在客户端计算机上&#xff0c;以管理员身份打开命令提示符或者 PowerShell&#xff0c;并运行 gpresult /h GPReport.html 或 gpresult /v 命令…

AJAX-认识URL

定义 概念&#xff1a;URL就是统一资源定位符&#xff0c;简称网址&#xff0c;用于访问网络上的资源 组成 协议 http协议&#xff1a;超文本传输协议&#xff0c;规定浏览器和服务器之间传输数据的格式&#xff1b;规定了浏览器发送及服务器返回内容的格式 协议范围&#xf…

【Vue】指令之内容绑定,事件绑定

Vue指令[1] 内容绑定&#xff0c;事件绑定v-test指令v-html指令v-on基础 内容绑定&#xff0c;事件绑定 v-test指令 作用&#xff1a;设置标签的文本值&#xff08;textContent&#xff09; 默认写法会替换全部内容&#xff0c;使用差值表达式可以替换指定内容内部支持写表达…

vue3.0中从proxy中取值

使用vue3.0时&#xff0c;因为底层是使用proxy进行代理的所以当我们打印一些值的时候是proxy代理之后的&#xff0c;是Proxy 对象&#xff0c;Proxy对象里边的[[Target]]才是真实的对象。也是我们需要的 第一种获取target值的方式&#xff1a; import { toRaw } from vue; le…

在 Amazon Nitro Enclaves 中运行 Amazon CloudHSM 应用

背景 Amazon CloudHSM 是亚马逊云科技提供的一项服务&#xff0c;旨在为客户提供安全的硬件安全模块&#xff08;HSM&#xff09;来保护和管理加密密钥。它将传统的硬件安全模块功能与云计算的灵活性相结合&#xff0c;使客户能够在亚马逊云科技云环境中创建和管理自己的加密密…

【DC渗透系列】DC-9靶场

开靶机&#xff0c;net模式&#xff0c;启动 arp-scan -l命令扫描存活主机 nmap -sS -sV -A -n 192.168.100.22 ┌──(root㉿kali)-[~] └─# nmap -sS -sV -A -n 192.168.100.22 Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-31 21:21 EST Nmap scan report for 19…

qt -chart控件设计器可拖拉

qt -chart控件设计器可拖拉 一、演示效果二、安装过程三、核心程序四、程序链接 一、演示效果 二、安装过程 三、核心程序 #include <QtGui> #include <QColor>#include <cstdlib> #include <cassert> #include <numeric>#include <chartwor…