Java数组的遍历

news2024/11/14 22:49:52

目录

  • 数组的遍历
    • 使用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 == -1
            System.out.println("根本没有你要删除的元素!");
        }

        // 4. 输出删除后的数组:
        System.out.println("删除元素后的数组:" + Arrays.toString(arr));
    }
}

在这里插入图片描述

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

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

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

相关文章

2024济南生物发酵展:会议日程安排和技术装备亮点预告

2024济南发酵展/2024生物发酵展/2024山东发酵展/2024济南生物制药展/2024生物技术展/2024食品设备展/2024食品加工展 由中国生物发酵产业协会主办&#xff0c;上海信世展览服务有限公司承办的2024第12届国际生物发酵产品与技术装备展览会&#xff08;济南&#xff09;将于3月5-…

【Go语言成长之路】引入外部包

文章目录 引入外部包一、查找需要引用的包二、引入需要导入的包三、运行程序 引入外部包 ​ 实现Demo: 引用rsc.io/quote包来实现打印输出 一、查找需要引用的包 ​ 比如说我现在想要找一个quote的包&#xff0c;那么可以通过如下步骤进行操作&#xff1a; 访问pkg.go.dev,并…

基于深度学习的多功能人脸识别系统

文章目录 前言一、用户登录设计二、图像采集设计1.本地视频2.摄像头3.RTSP 三、人脸识别原理1.人脸库的建立及训练2. 人脸检测算法的实现3. 人脸识别算法的实现 四、数据存储设计1.SQLite32.Excel 五、网络通信设计1.邮件通知2.阿里云 六、其他不重要功能展示1.年龄、性别和表情…

【已解决】Ubuntu64位无法运行32位ELF文件的问题

问题起因 因为在做一道逆向题&#xff0c;发现题目给的文件是32位elf文件&#xff0c;所以想在Linux下执行一下&#xff0c;然后发现会报错。 于是查了一下资料&#xff0c;发现报错的原因是64位的Ubuntu无法直接运行32位的程序&#xff0c;需要下载兼容32位的库。 解决方法…

单细胞scATAC-seq测序基础知识笔记

单细胞scATAC-seq测序基础知识笔记 单细胞ATAC测序前言scATAC-seq数据怎么得出的&#xff1f; 该笔记来源于 Costa Lab - Bioinformatics Course 另一篇关于scRNA-seq的请移步 单细胞ATAC测序前言 因为我的最终目的是scATAC-seq的数据&#xff0c;所以这部分只是分享下我刚学…

JavaScript鼠标事件入门

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 鼠标事件是Web开发中最为重要的交互方式之一。本文将带领大家入门常用…

分库分表 21 条法则,hold 住!

大家好&#xff5e;今天给大家分享分库分表的 21 条法则 我们结合具体业务场景&#xff0c;以t_order表为例进行架构优化。由于数据量已经达到亿级别&#xff0c;查询性能严重下降&#xff0c;因此我们采用了分库分表技术来处理这个问题。具体而言&#xff0c;我们将原本的单库…

[SWPUCTF 2021 新生赛]easyrce

经典的RCE题目看到这个eval可以想到使用系统命令执行 我们查看当前文件夹下的文件只有index.php 一般放在/目录下 我们查看 看到一个类似flag的文件 我们查看cat找到flag

顺序表和链表对应的经典算法

一&#xff0c;移除元素 思路&#xff1a;定义一个循环遍历数组&#xff0c;如果遇到的不是val就记录下来这个元素&#xff0c;如果不是就跳过 定义两个指针&#xff0c;一个用于保留非val元素&#xff0c;一个用于遍历nums int removeElement(int* nums, int numsSize, int …

基于WordPress开发微信小程序1:搭建Wordpress

2年前&#xff0c;在知乎上提问&#xff1a;多数公司为什么宁愿自研也不用wordpress二次开发建站&#xff1f; - 知乎 (zhihu.com)&#xff0c;收到了&#xff0c;很多回答 自己打算做一下提升&#xff0c;便有了自己基于wordpress开发微信小程序的想法 项目定位 基于wordpre…

ruoyi(若依)(el-menu也可参考)菜单栏过长显示省略号才显示气泡

一、背景 若依前后端分离的版本&#xff0c;新版本中优化了菜单名称过长悬停显示标题&#xff0c;但是是悬浮所有长度大于5的标题。可以查看提交记录&#xff1a;https://gitee.com/y_project/RuoYi-Cloud/commit/99932d91c0144da9f34f5bb05683cc0b86303217 但是我希望是只悬浮…

centos6和centos7无网络环境下安装fontconfig,配置中文字体

以centos6为例 1、查看系统版本 cat /etc/redhat-release 2、访问https://vault.centos.org下载相关rpm包 找到对应系统版本 3、下载相应的rpm包上传到服务器 dejavu-fonts-common-2.33-1.el6.noarch.rpm dejavu-sans-fonts-2.33-1.el6.noarch.rpm fontconfig-2.8.0-5.el6.…

【Python小游戏】五子棋小游戏(完整代码)

文章目录 写在前面Tkinter简介五子棋小游戏游戏介绍程序设计运行结果注意事项写在后面写在前面 本期内容:基于tkinter开发一个五子棋小游戏 实验环境 python3.11及以上pycharmtkinterTkinter简介 Tkinter是Python中最常用的图形用户界面(GUI)库之一,用于创建窗口、对话框…

Day 1. 学习linux高级编程之Shell命令和IO

1.C语言基础 现阶段学习安排 2.IO编程 多任务编程&#xff08;进程、线程&#xff09; 网络编程 数据库编程 3.数据结构 linux软件编程 1.linux&#xff1a; 操作系统&#xff1a;linux其实是操作系统的内核 系统调用&#xff1a;linux内核的函数接口 操作流程&#xff…

深度学习入门笔记(二)神经元的结构

神经网络的基本单元是神经元&#xff0c;本节我们介绍神经元的结构。 2.1 神经元 一个神经元是由下面 5 部分组成的&#xff1a; 输入&#xff1a;x1,x2,…,xk。权重&#xff1a;w1,w2,…,wk。权重的个数与神经元输入的个数相同。偏移项&#xff1a;可省略。激活函数&#…

IEEE Proc.|基于知识图谱的少样本和零样本学习综述

本文作者&#xff1a;陈矫彦&#xff08;曼彻斯特大学&牛津大学&#xff09;、耿玉霞&#xff08;浙江大学&#xff09;、陈卓&#xff08;浙江大学&#xff09;、Jeff Z. Pan&#xff08;爱丁堡大学&#xff09;、何源&#xff08;牛津大学&#xff09;、 Ian Horrocks&am…

Linux的权限 + 【提权 | 粘滞位】

Linux权限的概念 Linux下有两种用户&#xff1a;超级用户&#xff08;root&#xff09;、普通用户。 超级用户&#xff1a;可以在linux系统下做任何事情&#xff0c;不受限制普通用户&#xff1a;在linux下做有限的事情。超级用户的命令提示符是“#”&#xff0c;普通用户的命…

C++迷宫游戏详解

个人主页&#xff1a;[PingdiGuo_guo] 收录专栏&#xff1a;[C干货专栏] 大家好呀&#xff0c;我是PingdiGuo_guo&#xff0c;今天我们来学习用C实现一个迷宫游戏。 目录 1.迷宫的具体步骤 1.1.迷宫的初始化 1.2.寻路算法 1.DFS算法 2.BFS算法 1.3.移动 2.总结 C迷宫游…

音视频数字化(数字与模拟-录音机)

之前我们说了【数字与模拟-照相机】照相机的数字化,今天聊聊录音机。 说录音机之前,必须说说留声机。留声机是爱迪生1877年宣布发明成功的,研发过程相当复杂,但原理是简单的。 声音的本质是“波”,是物体振动产生的。以乐器为例,打击乐就是敲击(鼓、钹、木鱼、木琴、三…