今天,一夜入秋。
不知不觉,学习JAVA已经十天了。凭着C语言的基础,入门还算不难,学起来也是干劲十足。今天学了JAVA的二维数组的使用。
二维数组和一维数组有一定相似点,但也有不同点。首先看看二维数组的初始化:
package com.atjialiang.contact;
/*
* 二维数组的使用
*/
public class TwoArrayTset {
public static void main(String[] args)
{
//静态初始化
//int[][] arr1 = new int[][] {{1,2,3},{4,5},{6,7,8}};
//动态初始化
//int[][] arr2 = new int[3][2];
int[][] arr = new int[4][3];
System.out.print(arr[0]);//地址值
System.out.print(arr[0][0]);//0
}
}
你会发现二维数组arr[0]调用出来是地址值,而不是具体的值。下面是一个遍历二维数组和求所有元素和的代码:
package com.at.jialiang.exer;
/*
* 获取二维数组中所有元素的和
*
*
*/
public class ArrayExer2 {
public static void main(String[] args)
{
int[][] arr = new int[][]{{3,5,8},{12,9},{7,0,6,4}};
int sum = 0;
for (int i = 0;i < arr.length ;i++)
{
for (int j = 0;j < arr.length ;j++)
{
sum += arr[i][j];
}
}
System.out.println(sum);
}
}
然后做了个二维数组的算法练习:杨辉三角。代码如下:
/*
* 使用二维数组打印10行杨辉三角
* 第N行 有N个元素
* 每行首位为1
* 每行值 等于其上面和其上面左边数的和
*/
public class YanghuiTest {
public static void main(String[] args)
{
int arr[][] = new int[10][];
//初始化数组
for (int i = 0;i < arr.length ;i++)
{
arr[i] = new int[i + 1];
//首尾赋值
arr[i][0] = 1;
arr[i][i] = 1;
//除了首尾的赋值
for (int j = 1;j < arr[i].length - 1;j++)
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
//遍历二维数组
for (int i = 0;i < arr.length ;i++)
{
for (int j = 0 ; j < arr[i].length ;j++)
{
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}