07.Java数组

本文详细介绍了Java中的数组,包括数组的概念、声明与创建方式、访问数组元素、获取数组长度、数组越界问题、内存分析及初始化方法。此外,还展示了如何使用foreach循环遍历数组、将数组作为方法参数和返回值,以及多维数组的应用。通过实例代码,读者可以深入理解Java数组的使用和操作。
摘要由CSDN通过智能技术生成

一.什么是数组

数组是相同类型数据的集合
其中每一个数据称为数组元素,我们可以通过数组下标访问他们

二.数组声明和创建

2.1数组声明

第一种方法:变量类型[] 变量名称 int[] numbers
第二种方法:变量类型 变量名称[] int numbers[]
推荐第一种

2.2创建数组

变量名称 = new 数组类型[长度] nunbers = new int[10]

可写为一句 int[] numbers = new int[10]

三.访问数组元素,获取数组长度,越界问题

3.1通过下标进行访问:numbers[0]

3.2获取数组长度:numbers.length

3.3数组越界:

数组下标的合法区间是[0,length-1],超出这个范围会出现越界错误:ArrayIndexOutOfBoundsException

public class World {
    public static void main(String[] args) {
        //声明创建数组
        int[] numbers = new int[5];
        //给数组赋值
        numbers[0] =1;
        numbers[1] =2;
        numbers[2] =3;
        numbers[3] =4;
        numbers[4] =5;

        //访问数组元素
        System.out.println(numbers[2]);

        //获取数组长度
        System.out.println(numbers.length);
        //下标越界
         System.out.println(numbers[5]);
    }
}
  • 数组长度确定后,不能修改
  • 同一数组内数组元素类型都相同,数组是相同类型数据的有序结合
  • 数组也是对象,数组元素相当于成员变量

四.数组内存分析及三种初始化

4.1 内存分析

首先简单了解栈和堆:
堆:存放new的对象和数组
栈:存放基本变量类型
下图分析当我们创建一个数组时内存简单变化过程:
内存图

4.2初始化方法

package com.li.www;

public class World {
    public static void main(String[] args) {
        //静态初始化:创建 + 赋值
        int[] a ={1,2,3,4,5};
        System.out.println(a[1]);   //输出结果为:2
        //动态初始化,包含第三种默认初始化
        int[] b = new int[5];   //堆中存在五个空间,都为默认值0
        b[0] = 6;
        System.out.println(b[0]);  //输出结果为:6
        System.out.println(b[1]);   //输出结果为:0
    }
}

五.数组使用

5.1 for each循环

public class World {
    public static void main(String[] args) {
        //静态初始化:创建 + 赋值
        int[] a ={1,2,3,4,5};
        //for each遍历数组元素,jdk1.5以上
        for (int b : a
             ) {
            System.out.println(b);
        }
    }
}

5.2数组作为方法参数

public class World {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        printArray(arrays);
    }
    //打印数组元素
    public static void printArray(int[] arrays){
        for (int i = 0;i < arrays.length; i++){
            System.out.println(arrays[i]);
        }
    }
}

5.3数组做返回值

public class World {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        int[] rev = reverse(arrays);
        printArray(rev);

        //System.out.println(res);
    }
    //反转数组
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];
        //反转操作
        for (int i = 4,j = 0;i >= 0; i--,j++){
            result[j] =arrays[i];
        }
        return result;
    }
    //打印数组元素
    public static void printArray(int[] arrays){
        for (int i = 0;i < arrays.length; i++){
            System.out.println(arrays[i]);
        }
    }
}

六.多维数组

多维数组可以看成时数组的数组
例如二维数组:

    int[][] array = {{1,2},{2,3},{3,4},{4,5}};
    /*
    相当于4行2列
    1,2     array[0]
    2,3     array[1]
    3,4     array[2]
    4,5     array[3]
    */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不一样的鑫仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值