Java——【数组】


一、数组的定义

在java中数组属于一种引用类型,可以存放相同类型的元素

二,声明的数组

一维数组声明:数组元素类型+[ ] +数组名;
二维数组声明:数组元素类型+[ ][ ] +数组名;

int[] arr;//int类型的数组,用于存放int类型的元素
float[] arr1;//float类型的数组,用于存放float类型的元素
double[] arr2;//double类型的数组,用于存放double类型的元素
char[][] arr;//char类型的数组,用于存放char类型的元素
String[][] arr1;//String类型的数组,用于存放String类型的元素
double[][] arr2;//double类型的数组,用于存放double类型的元素

三,数组初始化

在这里插入图片描述
数组的下标是从0开始的

public class Main {
    public static void main(String[] args) {
        int[] arr1=new int[]{1,2,3,4};//静态初始化
        int[] arr2=new int[4];//动态初始化
        arr2[0]=1;
        arr2[1]=2;
        arr2[2]=3;
        arr2[3]=4;
        for (int i = 0; i < arr1.length; i++) {//通过length我们可以知道数组的元素个数
            System.out.println(arr1[i]);
            System.out.println(arr2[i]);
        }
    }
}

四,数组的引用

数组所引用的对象是在堆上的
在这里插入图片描述
arr1和arr2指向了同一个对象(存放在堆中),arr1和arr2作为变量存放在栈中的。
在这里插入图片描述

数组的传递引用

import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        int[] arr1={11,21,33,1,2,4};
        func2(arr1);//没有调用func
        func(arr1);//调用了func
    }
    public static void func(int[] arr1){
        for (int i = 0; i < arr1.length; i++) {
            Arrays.sort(arr1);//快速排序
        }
        func2(arr1);
    }
    public static void func2(int[] arr1) {
        System.out.println(Arrays.toString(arr1));
    }
输出结果:
[11, 21, 33, 1, 2, 4]
[1, 2, 4, 11, 21, 33]

五,二维数组

二维数组相当于是一个存放了一个一维数组的一维数组。

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[][] arr=new int[][]{{1,2,3},{3,2,1},{4,5,6}};//在一个一维数组中存放着三个一维数组
        System.out.println(Arrays.toString(arr[0]));//通过Arrays.toString()将数组arr[0]的内容快速打印出来
        System.out.println(Arrays.toString(arr[1]));//通过Arrays.toString()将数组arr[1]的内容快速打印出来
        System.out.println(Arrays.toString(arr[2]));//通过Arrays.toString()将数组arr[2]的内容快速打印出来
        System.out.println(arr[0]);//arr[0]为第一个一维数组的地址
        System.out.println(arr[1]);//arr[1]为第二个一维数组的地址
        System.out.println(arr[2]);//arr[2]为第三个一维数组的地址
    }
}
输出结果:
[1, 2, 3]
[3, 2, 1]
[4, 5, 6]
[I@1b6d3586
[I@4554617c
[I@74a14482

用图形来理解
在这里插入图片描述

不规则数组`

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[][] arr=new int[2][];
        arr[0]=new int[4];//不规则数组,可以指定列数,4列
        arr[1]=new int[3];//3列
        System.out.println(Arrays.toString(arr[0]));
        System.out.println(Arrays.toString(arr[1]));
        for (int i = 0; i < arr.length; i++) {//length得到出行数
            for (int j = 0; j < arr[i].length; j++) {//length得到列数
                System.out.print(arr[i][j]+" ");
            }
            System.out.println( );
        }
    }
}
输出结果:
[0, 0, 0, 0]
[0, 0, 0]
0 0 0 0 
0 0 0 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值