JAVA中一维数组的作用,java中的一维数组和二维数组

一维数组

1、一维数组的声明方式

type[] arrayName; 或 type arrayName[];

下面以声明整型数组为例,其他同理。

声明整型数组的方式(笔者习惯第一种方式,二维数组以第一种方式书写)

int[] arr ;

int arr1[];

2、一维数组的创建

Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数]

// 创建数组,如果在创建的同时不初始化数组则必须指定其大小

int[] arr = new int[3];

// 错误的创建数组的方式,如果创建数组时不指定大小则必须初始化

// int arr1[] = new int[];

// 创建数组时,不指定数组大小则必须在创建的同时初始化数组

int arr1[] = new int[]{0,1,2};

3、一维数组的初始化

数组的初始化分为静态初始化、动态初始化和默认初始化:

静态初始化是数组在初始化时由程序员显式指定每个数组元素的初始值而数组长度由系统决定。

动态初始化是数组在初始化时只指定数组长度,由系统为数组元素分配初始值。

a、数组静态初始化的语法格式:

arrayName = new type[]{element1,element2,element3...}或者使用简化的语法格式:arrayName = {element1,element2,element3...}

b、数组动态初始化的语法格式:

arrayName = new type[length];

附:静态初始化时不能指定元素个数,而动态初始化时则必须指定元素个数。静态初始化时数组能够知道元素的个数所以不需要指定,而动态初始化时数组元素个数未知因此必须指定。

代码块如下:

// 静态初始化

int[] arr2 = new int[]{20,21,22};

// 静态初始化简化方式

int[] arr3 = {30,31,32};

// 动态初始化

int[] arr4=new int[3];

// 错误写法:静态初始化不能指定元素个数

//int[] arr5 = new int[3]{50,51,52};

// 错误写法:动态初始化必须指定元素个数

//int[] arr6 = new int[];

注:一维数组这一块记住两点,数组声明的时候是不能指定大小的,也就是说等号左边的中括号中不能包含数字。另外一旦使用new关键字那么肯定在内存中为数组分配了空间,则必然数组有默认值。数组是对象数据类型。不要静态初始化和动态初始化同时使用,也就是说不要再进行数组初始化时,既指定数组长度,也为每个数组元素分配初始值。

4.一维数组的简单测试

public class Arraydemo {

public static void main(String[] args) {

int[] arr = new int[2];

System.out.println(arr[1]);

arr[1]=1;

System.out.println(arr[1]);

arr=null;

System.out.println(arr);

System.out.println(arr[1]);

}

}

这个代码有问题吗?答案是有的,报了空指针异常。给一下运行结果吧

7293624128f3

Arraydemo的运行结果

二位数组

1.定义

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵。

2.二维数组的初始化

代码表示如下:

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

int[][] arr1=new int[3][4];

3.嵌套for循环

文章链接:java中循环的几种方式

在这展示上篇文末没有写完的代码更容易理解,代码如下:

public class AArrayDemo1 {

public static void main(String[] args) {

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

for (int i=0;i

for (int j=0;j

System.out.print(arr[i][j]+"\t");

}

System.out.println();

}

}

}

运行结果如下图所示:

7293624128f3

AArrayDemo1的运行结果

4.二维数组的求和计算

以AArrayDemo1的二维数组为例,求二维数组中的每一个一维数组的和,最后求出二维数组的和,代码如下:

public class AArrayDemo2 {

public static void main(String[] args) {

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

int sum=0;

int groupsum=0;

for (int i=0;i

for (int j=0;j

groupsum+=arr[i][j];

}

System.out.println("第"+(i+1)+"个一维数组的和是"+groupsum);

sum+=groupsum;

groupsum=0;

}

System.out.println("二维数组的总和是"+sum);

}

}

运行结果如下图所示:

7293624128f3

AArrayDemo2的运行结果

给大家留个问题,可以亲自去试试

int[][] arr =new int[3][4];

System.out.println(arr[1][1]);

System.out.println(arr[1]);

System.out.println(arr);

System.out.println(arr[1][1])的运行结果是0。

System.out.println(arr[1])的运行结果是什么?

System.out.println(arr)的运行结果是AArrayDemo1的运行结果吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值