JAVA中对数组的理解及数组经典例题详解

本文详细介绍了Java中数组的创建、访问、遍历、作为方法参数和返回值的情况,以及各种操作数组的经典例题,包括数组转换、查找、排序、拷贝等,帮助读者深入理解Java数组的使用。
摘要由CSDN通过智能技术生成

前言

数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。例如:如果a是一个整型数组,a[i]就是数组中下标为i的整数。在声明数组变量时,需要指出数组类型(数据元素类型紧跟[]和数组变量的名字。下面声明了整型数组a:int[]a;这条语句只声明了变量a,并没有将a初始化为一个真正的数组。应该使用new运算符创建数组。int[] a = new int[100];
这条语句创建了一个可以存储100个整数的数组。数组长度不要求是常量: new int[n]会创建一个长度为n的数组。

一、创建数组

数组本质上就是让我们能 “批量” 创建相同类型的变量。在 Java 中, 数组中包含的变量必须是相同类型

创建数组的三种方式

方式一:

 int[] arr = {
   1,2,3,4,5};

方式二:

int[] arr2 = new int[3];//定义数组长度为3,未初始化

方式三:

int[] arr3 = new int[]{
   1,2,3,4,5};//定义数组长度为5,初始化

二、 数组的使用

1.获取长度 & 访问元素

 public static void main(String[] args) {
   
        int[] arr = {
   1,2,3,4,5};
        System.out.println(arr.length);//求数组的长度
        System.out.println(arr[3]);//访问数组中的元素
        arr[3] = 19;
        System.out.println(arr[3]);//改变数组里面的内容
 }

注意:

  1. 使用 arr.length 能够获取到数组的长度,. 这个操作为成员访问操作符,后面在面向对象中会经常用到.
  2. 使用 [ ] 按下标取数组元素. 需要注意, 下标从0开始计数.
  3. 使用 [ ] 操作既能读取数据, 也能修改数据.
  4. 下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现下标越界异常.

2.遍历数组

“遍历” 是指将数组中的所有元素都访问一遍, 不重不漏. 通常需要搭配循环语句.

2.1使用for循环

for循环可以拿到下标

 public static void main(String[] args) {
   
        int[] arr = {
   1,2,3,4,5};
        for (int i = 0; i < arr.length; i++) {
    //for循环可以拿到下标
        System.out.print(arr[i] + " "); //打印数组中的每个元素
        }

2.2使用for each循环

语法格式:

for (int element : a)
System.out.println(element);

打印数组a的每一个元素,一个元素占一行。这个循环应该读作“循环a中的每一个元素”( for each element in a)。Java语言的设计者认为应该使用诸如foreach、in这样的关键字,但这种循环语句并不是最初就包含在Java语言中的,而是后来添加进去的,并且没有人打算废除已经包含同名(例如System.in)方法或变量的旧代码。
for each循环又称增强for循环,可以打印数组中的每个元素 但是拿不到数组下标

  public static void main(String[] args) {
   
        int[] arr = {
   1,2,3,4,5};
        for (int x:arr) {
     //
            System.out.print(x + " ");
        }

2.3Arrays类的toString 方法

调用Arrays.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分隔,例如:“[2,3,5,7,11,13]”。要想打印数组,可以调用:System.out.println(Arrays.toString(a));

 public static void main(String[] args) {
   
        int[] arr = {
   1,2,3,4,5};
//借助java的操作数组的工具类  Arrays.toString:将参数的数组以字符串的形式进行输出
        String ret = Arrays.toString(arr);
        System.out.println(ret);
    }

三、数组作为方法的参数

3.1打印数组的内容

 public static void printf(int[] a) {
   
        for (int i = 0; i < a.length; i++) {
   
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
    public static void main(String[] args) {
   
        int[] arr = {
   1,2,3,4,5};
        printf(arr);//按引用传递(按值传递)
    }

在这个代码中int[] a 是函数的形参, int[] arr 是函数实参.

3.2理解引用类型

  public static void func1(int[] arr){
   
        arr = new int[]{
   10,12,24,52,61};
    }
    public static void func2(int[] arr){
   
        arr[0] = 521;
    }
    public static void main(String[] args) {
   
        int[] arr = {
   1,2,3,4,5};
        System.out.print(Arrays.toString(arr));// 1,2,3,4,5
        System.out.println();
  //    func1(arr);//1,2,3,4,5 虽然传的是地址,但是传过去之后,形参只是改变了自己的指向而已。
        func2(arr); //521,2,3,4,5
//在函数内部修改数组内容, 函数外部也发生改变.此时数组名 arr 是一个"引用".当传参的时候, 是按照引用传参.
        System.out.print(Arrays.toString
  • 20
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值