(Java)第 4 章 数组与方法:数组的定义及使用

一、一维数组

一维数组的声明与分配内存

数据类型 数组名称[] = null; //声明数组
数组名称 = new 数据类型[长度]; //分配内存给数组

数组声明的另外一种形式

数据类型[] 数组名称 = null; //声明一维数组

声明数组的同时分配内存

数据类型 数组名[] = new 数据类型[个数];

示例:

int score[] = null;
score = new int[3];
等价于
int score[] = new int[10]; 

数组声明的疑问?

数组的声明上为什么要写上一个“null”呢?例如:“int score[] = null;”
数组属于引用数据类型,那么对于引用数据类型来说其默认值就是null,表示暂时还没有任何指向的内存空间。

public class ArrayDemo01 {
    public static void main(String[] args) {
        int score[] = new int[4];
        for (int x=0;x<4;x++){
            score[x] = x*2+1;
        }
        //返回数组的长度
        System.out.println("The length of the array is :" + score.length);
    }
}

关于内存分配的操作
在这里插入图片描述
从图中可以发现,一个数组开辟了堆内存之后,将在堆内存中保存数据,并将堆内存的操作地址给了数组名称score。
在这里插入图片描述

二、数组的静态初始化

数组赋初值

数据类型 数组名[] = {初值0,初值1,....初值n}
例如:
int score[] = {32,45,67,90};

示例:由小到大排序

package Chapter_4;

public class ArrayDemo01 {
    public static void main(String[] args) {
        int score[] = {67,89,69,100,75};
        for(int i=0;i<score.length;i++){
            for (int j=i;j<score.length;j++){
                if(score[i]>score[j]){
                    int temp = score[j];
                    score[j] = score[i];
                    score[i] = temp;
                }
            }
            System.out.print("第"+i+"次排序的结果:\t");
            for(int j=0;j<score.length;j++){
                System.out.print(score[j]+"\t");
            }
            System.out.println("");
        }
        System.out.print("最终的排序结果为:\t");
        for (int i=0;i<score.length;i++){
            System.out.print(score[i]+"\t");
        }

    }
}

三、二维数组

二维数组的声明格式

数据类型 数组名[][];
数组名 = new 数据类型[行的列数][列的个数];

与一位数组不同,二维数组在分配内存时,必须告诉编译器二维数组行与列的个数
示例:

int score[][];//声明整型数组 score
score = new int[3][4];//配置一块内存空间,供3行4列的整型数组score使用

简介的声明方式:

数据类型 数组名[][] = new 数据类型[行的个数][列的个数];
示例:
int score[][] = new int[3][4];//声明整型数组score,同时为其开辟一块内存空间

二维数组静态初始化格式

数据类型 数组名[][] = {
	{0行初值},
	{1行初值},
	....
	{第n行初值},
};

示例:

public class ArrayDemo01 {
    public static void main(String[] args) {
        int score[][] = {{67,42},{45,67,89},{99,100,88}};
        for (int i = 0;i<score.length;i++){
            for (int j=0;j<score[i].length;j++){
                System.out.print(score[i][j] + "\t");
            }
            System.out.println("");
        }
    }
}

在这里插入图片描述

三、补充

int[] a;

这里拥有的只是对数组的一个引用(已经为该引用分配了足够的存储空间),但是还没有给数组对象本身分配任何空间。为了给数组创建相应的存储空间,必须写初始化表达式。

int[] a = {1,2,3,4};
或者
int[] a = null;
a = new int[3];
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

南淮北安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值