数组(一维数组):
存储多个同类型数据
- 格式1:
数据类型[] 数组名 = new 数据类型[长度];
- 格式2:
数据类型[] 数组名 = {值1,值2,值3...};
二维数组:
多个一维数组组成 x行y列
格式
- 定义格式1:
数据类型[][] 数组名 ;
数组名 = new 数据类型[行][列];
- 定义格式2:
数据类型[][] 数组名 = new 数据类型[行][列];
- 定义格式3:
数据类型[][] 数组名 = {
{值1,值2,值3...},
{值1,值2,值3...},
{值1,值2,值3...}
};
二维数组元素:
数组名[行][列];
行下标从0开始
列下标从0开始
- 每行的元素个数:数组名[行].length
- 二维数组总行数:数组名.length
遍历二维数组:
先找到所有的行, 再找到每一行的所有元素(列)
for(int i=0;i<数组名.length;i++){
for(int j=0;j<数组名[i].length;j++){
数组名[i][j];
}
}
代码案例:
package com.zking.work;
public class Shuzu {
public static void main(String[] args) {
//定义一个整型数组(二维数组),有2行,3列
int[][] s = new int[2][3];
//具体元素 并赋值
//第一行 第一个元素
s[0][0] = 11;
//第一行 第二个元素
s[0][1] = 12;
//第二行 第一个元素
s[1][0] = 21;
//第二行 第二个元素
s[1][1] = 22;
//输出
//第一行的两个元素
System.out.println(s[0][0]);
System.out.println(s[0][1]);
//第二行的两个元素
System.out.println(s[1][0]);
System.out.println(s[1][1]);
System.out.println("------------------------");
//求 第一行的 元素个数 即列
System.out.println(s[0].length +"列");
//求 二维数组的 总行数
System.out.println(s.length+"行");
//找到所有的行
for(int i = 0; i<s.length; i++) {
for(int j = 0; j<s[i].length ;j++) {
System.out.print(s[i][j]+" ");
}
System.out.println();
}
System.out.println("-----------杨辉三角------------");
/* j
* 0 1 2 3 4 5
* i 0 1
* 1 1 1 1
* 2 1 2 2 1
* 3 1 3 4 3 1
* 4 1 4 7 7 4 1
* ~ ~
*/
/*
* 规律
* 1. j=0 , 元素为1
* 2. j=i , 元素为1
* 3. [i][j] = [i-1][j]+[i-1][j-1]
*/
//定义一个4*4的二维数组
int[][] a = new int[4][4];
//遍历数组,找到每一个元素
//遍历行
for(int i = 0; i<a.length ; i++) {
for(int j = 0; j<=i ; j++) {
if(j==0 || j==i) {
a[i][j] = 1;
}else {
a[i][j] = a[i-1][j]+a[i-1][j-1];
}
}
}
//遍历数组
for(int i = 0; i<a.length ; i++) {
for(int j = 0; j<=i ; j++) {
System.out.print(a[i][j]+" ");
}
System.out.println();
}
System.out.println("-------定义格式3--------");
int[][] b = {//列可以不一样
{1,2,3,4},
{1,3,5,7,9},
{2,4}
};
for(int i = 0; i<b.length ; i++) {
for(int j = 0; j<b[i].length ; j++) {
System.out.print(i+"行");
System.out.print(j+"列");
System.out.print(" ");
System.out.print(b[i][j]+" ");
}
System.out.println();
}
}
}