Java中数组的常见操作合集

 更新时间:2022年10月09日 10:51:29   作者:共饮一杯无  
这篇文章主要为大家详细介绍了Java中数组的一些常见操作,例如:数组遍历、数组获取最大值元素、数组反转等,感兴趣的小伙伴可以了解一下

数组的常见操作

数组越界异常

public static void main(String[] args) {
        int[] array = {15, 25, 35};
        System.out.println(array[0]); //15
        System.out.println(array[1]); // 25
        System.out.println(array[2]); // 35

        // 错误写法
        // 并不存在3号元素,所以发生异常
        System.out.println(array[3]);
    }

创建数组,赋值3个元素,数组的索引就是15,25,35,没有3索引,因此我们不能访问数组中不存在的索引,程序运行后,将会抛出 ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。

15
25
35
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
	at com.zjq.javabase.base05.demo03.Demo01ArrayIndex.main(Demo01ArrayIndex.java:25)

数组空指针异常

观察一下代码,运行后会出现什么结果。

 public static void main(String[] args) {
        int[] array = null;
//        array = new int[3];
        System.out.println(array[0]);
    }

array= null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候 会抛出NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修 改我们编写的代码。

Exception in thread "main" java.lang.NullPointerException
	at com.zjq.javabase.base05.demo03.Demo02ArrayNull.main(Demo02ArrayNull.java:20)

数组遍历

数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。

public static void main(String[] args) {
    int[] arr = { 1, 2, 3, 4, 5 };
    System.out.println(arr[0]);
    System.out.println(arr[1]);
    System.out.println(arr[2]);
    System.out.println(arr[3]);
    System.out.println(arr[4]);
}

以上代码是可以将数组中每个元素全部遍历出来,但是如果数组元素非常多,这种写法肯定不行,因此我们需要改造成循环的写法。数组的索引是0 到lenght-1 ,可以作为循环的条件出现。

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

数组获取最大值元素

最大值获取:从数组的所有元素中找出最大值。 实现思路

  • 定义变量,保存数组0索引上的元素
  • 遍历数组,获取出数组中的每个元素
  • 将遍历到的元素和保存数组0索引上值的变量进行比较
  • 如果数组元素的值大于了变量的值,变量记录住新的值
  • 数组循环遍历结束,变量保存的就是数组中的最大值

代码实现如下:

public static void main(String[] args) {
        int[] array = { 5, 15, 30, 20, 10000, 30, 35 };

        int max = array[0]; // 比武擂台
        for (int i = 1; i < array.length; i++) {
            // 如果当前元素,比max更大,则换人
            if (array[i] > max) {
                max = array[i];
            }
        }
        // 谁最后最厉害,就能在max当中留下谁的战斗力
        System.out.println("最大值:" + max);
    }

数组反转

数组的反转: 数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1 实现思想:数组最远端的元素互换位置。

  • 实现反转,就需要将数组最远端元素位置交换
  • 定义两个变量,保存数组的最小索引和最大索引
  • 两个索引上的元素交换位置
  • 最小索引++,最大索引--,再次交换位置
  • 最小索引超过了最大索引,数组反转操作结束

代码实现:

public static void main(String[] args) {
    int[] arr = { 1, 2, 3, 4, 5 };
    /*
    循环中定义变量min=0最小索引
    max=arr.length‐1最大索引
    min++,max‐‐
    */
    for (int min = 0, max = arr.length ‐ 1; min <= max; min++, max‐‐) {
        //利用第三方变量完成数组中的元素交换
        int temp = arr[min];
        arr[min] = arr[max];
        arr[max] = temp;
    }
    // 反转后,遍历数组
    for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
    }
}

数组作为方法参数和返回值

数组作为方法参数

以前的方法中我们学习了方法的参数和返回值,但是使用的都是基本数据类型。那么作为引用类型的数组能否作为方法的参数进行传递呢,当然是可以的。 数组作为方法参数传递,传递的参数是数组内存的地址。

public static void main(String[] args) {
    int[] arr = { 1, 3, 5, 7, 9 };
    //调用方法,传递数组
    printArray(arr);
}
/*
创建方法,方法接收数组类型的参数
进行数组的遍历
*/
public static void printArray(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
    }
}

数组作为方法返回值

数组作为方法的返回值,返回的是数组的内存地址。

public static void main(String[] args) {
    //调用方法,接收数组的返回值
    //接收到的是数组的内存地址
    int[] arr = getArray();
    for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
    }
}
/**
    创建方法,返回值是数组类型
    return返回数组的地址
*/
public static int[] getArray() {
    int[] arr = { 1, 3, 5, 7, 9 };
    //返回数组的地址,返回到调用者
    return arr;
}

到此这篇关于Java中数组的常见操作合集的文章就介绍到这了,更多相关Java数组操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java接口自动化测试框架设计之Get请求方法和测试详解

    Java接口自动化测试框架设计之Get请求方法和测试详解

    这篇文章主要介绍了Java接口自动化测试框架设计 Get请求方法和测试,框架设计我们只是介绍基本的组件,而且框架设计没有想象那么难,一步一步跟着做就会了。这篇我们来演示,如果通过Java代码来实现一个用纯代码实现Http中的Get请求过程,需要的朋友可以参考下
    2019-07-07
  • Spring Boot整合Bootstrap的超详细步骤

    Spring Boot整合Bootstrap的超详细步骤

    之前做前端开发,在使用bootstrap的时候都是去官网下载,然后放到项目中,在页面引用,下面这篇文章主要给大家介绍了关于Spring Boot整合Bootstrap的超详细步骤,需要的朋友可以参考下
    2023-05-05
  • 多模字符串匹配算法原理及Java实现代码

    多模字符串匹配算法原理及Java实现代码

    这篇文章主要介绍了多模字符串匹配算法原理及Java实现代码,涉及算法背景,原理,构建过程简单介绍几Java代码实现等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot项目引入第三方sdk jar包的解决方案

    SpringBoot项目引入第三方sdk jar包的解决方案

    这篇文章主要介绍了SpringBoot项目引入第三方sdk jar包,个人感觉比较好的解决方案是将 jar上传到本地的maven仓库,然后通过pom依赖,引入第三方jar包,需要的朋友可以参考下
    2022-05-05
  • SpringBoot集成Mybatis-plus并实现自动生成相关文件的示例代码

    SpringBoot集成Mybatis-plus并实现自动生成相关文件的示例代码

    Mybatis-Plus是一个优秀的Mybatis增强工具,目前更新到3.1.1,本文通过示例代码给大家介绍SpringBoot集成Mybatis-plus并实现自动生成相关文件的问题,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • 解析Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时路径的问题

    解析Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时

    大家都很纠结这个问题在使用getServletContext().getRealPath()得到的是临时文件的路径,每次重启服务,这个临时文件的路径还好变更,下面小编通过本文给大家分享Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时路径的问题,一起看看吧
    2021-05-05
  • Java的lambda表达式实现解析

    Java的lambda表达式实现解析

    这篇文章主要为大家详细介绍了Java的lamda表达式实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 一文搞清楚Java中Comparable和Comparator的区别

    一文搞清楚Java中Comparable和Comparator的区别

    Java中的Comparable和Comparator都是用于集合排序的接口,但它们有明显的区别,文中通过一些实例代码详细介绍了Java中Comparable和Comparator的区别,感兴趣的同学跟着小编一起学习吧
    2023-05-05
  • eclipse怎么引入spring boot项目插件的方法

    eclipse怎么引入spring boot项目插件的方法

    这篇文章主要介绍了eclipse怎么引入spring boot项目插件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 你肯定能看懂的Java IO相关知识总结

    你肯定能看懂的Java IO相关知识总结

    群里有大佬说想让我写一篇NIO,一直也没写,但是和同事聊天也说对Java的IO不是很清晰,因此今天就写下Java的io,先打个基础,下次写NIO,需要的朋友可以参考下
    2021-05-05

最新评论