JAVA入门(9)--------数组

本文详细介绍了C语言及Java中数组的概念和使用方法,包括数组的一致性、有序性和不可变性等特性,并通过具体案例展示了如何进行一维数组和二维数组的静态与动态初始化,以及不规则数组的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组的本质---C语言   一连串的内存单元

数组的三个基本特性

1、一致性:元素数据类型是一致的

2、有序性:数组中元素是有序的,通过下标访问

3、不可变性:数组一旦初始化,长度不可变

(可变长度数组实际上是一种数据类型,牺牲性能换取可变  aray list)

JAVA中的数组本身是引用数据类型,长度属性是length

 

9.1 一维数组

静态初始化

//静态初始化
int[] intArray1 = { 21, 22, 23 };
String strArray1[] = { "王一", "王二", "王三", "王五" };

动态初始化

int intArray[];
//动态初始化int数组
intArray = new int[4];
intArray[0] = 20;
intArray[1] = 21;
intArray[2] = 22;

案例:数组合并

// 两个待合并的数组
int array1[] = { 20, 10, 30, 40, 50 };
int array2[] = { 1, 2, 3 };

// 动态初始化新的数组
int array[] = new int[array1.length + array2.length];

// 循环添加数组元素
for (int i = 0; i < array.length; i++) {
	if (i < array1.length) {
		array[i] = array1[i];
	} else {
		array[i] = array2[i - array1.length];
	}
}

System.out.println("合并完成");
		
for (int item : array) {
	System.out.println(item);
}

 

 

9.2 二维数组

1.  静态初始化

int intArray[][] = { { 1, 2, 3 }, { 11, 12, 13 }, { 21, 22, 23 }, { 31, 32, 33 } };

 

2. 动态初始化

new 元素数据类型【高维数组长度】【低维数组长度】;

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

//静态初始化二维数组
int[] intArray[] = { 
	            { 1, 2, 3 }, 
	            { 11, 12, 13 },
	            { 21, 22, 23 },
	            { 31, 32, 33} };
		
//动态初始化二维数组
double[][] doubleArray = new double[4][3];
		
//计算数组intArray 元素的平方给给根,结果保存到 doubleArray
for (int i = 0; i < intArray.length; i++) {
	for(int j = 0; j < intArray[i].length; j++) {
		doubleArray[i][j] = Math.sqrt(intArray[i][j]);
	}
}
		
		
for (int i = 0; i < doubleArray.length; i++) {
	for (int j = 0; j < doubleArray[i].length; j++) {
		System.out.printf("[%d][%d] = %f", i, j, doubleArray[i][j]);
		System.out.print('\t');
	}
	System.out.println();
}
		

 

3. 不规则数组

1)静态初始化

int intArray[][] = { { 1, 2 }, { 11 }, { 21, 22, 23 }, { 31, 32, 33 } };

 

2) 动态初始化

int intArray[][] = new int [4][]; //先初始化高维数组

//逐个初始化低维数组

intArray[0] = new int[2];

intArray[1] = new int[1];

intArrsy[2] = new int[3];

 

3) 不规则数组访问

下标越界:

 



        int intArray[][] = new int[4][]; // 先初始化高维数组
        intArray[0] = new int[2];
        intArray[1] = new int[1];
        intArray[2] = new int[3];
        intArray[3] = new int[3];

        // for循环遍历
        for (int i = 0; i < intArray.length; i++) {
            for (int j = 0; j < intArray[i].length; j++) {
                intArray[i][j] = i + j;
            }
        }

        // for-each 循环遍历
        for (int[] row : intArray) {
            for (int column : row) {
                System.out.print(column);
                System.out.print('\t');
            }
            System.out.println();
        }


 

0	1	
1	
2	3	4	
3	4	5	

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值