●
●
●
●
《最受歡迎的精準提升平臺》
/**
*@Title: ${filename}
*@Package: ${package_name}
*@Description: ${todo}
*二維數(shù)組
一,為什么需要二維數(shù)組?
一維數(shù)組是可以用來存儲相同類型的大量數(shù)據(jù)
需求:存儲3個學(xué)生java c c++ 等三門課程的成績
java c c++ jsp mysql
80 70 80
90 90 95
95 80 85
二,二維數(shù)組一般的定義格式
數(shù)據(jù)類型[][] 數(shù)組名 = new 數(shù)據(jù)類型[行數(shù)][列數(shù)];
指定行數(shù)和列數(shù)
賦值
數(shù)組名[行下標][列下標] = 值;
行下標起始值0 結(jié)束值行數(shù)-1
列下標起始值0 結(jié)束值列數(shù)-1
*
*@author: 源代碼資料盡在"清哥好課堂"公眾號:qghktit
*@date: ${date}${time}
*@version: 1.0
*/
import java.util.Scanner;
public class TwoArrary
{
public static void main(String[] args)
{
//定義不同行中的列數(shù)
//舉例
/* 楊輝三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
*/
final int N = 10;
int[][] arr = new int[N][];
//賦值
//arr[0][0] = 1; //java.lang.NullPointerException
//沒有空間。賦值
//第0行申請空間
//arr[0] ;代表的是二維數(shù)組中的第一行,是一個一維數(shù)組
//也就是說arr[0]是一維數(shù)組的數(shù)組名
//就必須給數(shù)組開辟空間
// arr[0] = new int[1]; //給二維數(shù)組的第一行,申請一個空間
// arr[0][0] = 1;
/*
i=0, 申請1個
i=1, 申請2個
i=2, 申請3個
*/
for (int i=0; i<N; i++) //給每一行申請不同的空間數(shù)
{
arr[i] = new int[i+1];
}
//求楊輝三角
for (int i=0; i<N; i++)
{
for (int j=0; j<=i; j++)
{
if (j==0 || i==j) //在0列上的,和對角線上的,都為1
{
arr[i][j] = 1;
}
else if (i>j)
{
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
}
}
//輸出
//輸出
for (int row=0; row<arr.length; row++) //外層循環(huán)打印行數(shù)
{
for (int col=0; col<arr[row].length; col++) //內(nèi)層循環(huán)打印列
{
System.out.print(arr[row][col]+"\t");
}
System.out.println("");
}
}
public static void main5(String[] args)
{
//二維數(shù)組的非常規(guī)定義法
//行數(shù)是固定的,列數(shù)的值各不相同
//要開辟出
/* 一開始知道初始值
0行,2列
1行,3列
2行,2列
3行,3列
*/
int[][] arr = {{1,2},{4,5,6},{7,8},{10,11,12}};
//arr[0][2] error
//一個二維數(shù)組,由多個同類型的一維數(shù)組組成
System.out.println("整個數(shù)組的長度"+arr.length);
System.out.println("第0行的長度:"+arr[0].length);
System.out.println("第1行的長度:"+arr[1].length);
System.out.println("第2行的長度:"+arr[2].length);
System.out.println("第3行的長度:"+arr[3].length);
//輸出
for (int row=0; row<arr.length; row++) //外層循環(huán)打印行數(shù)
{
for (int col=0; col<arr[row].length; col++) //內(nèi)層循環(huán)打印列
{
System.out.print(arr[row][col]+"\t");
}
System.out.println("");
}
/* 楊輝三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
*/
}
public static void main4(String[] args)
{
//正常情況對數(shù)組的定義
//規(guī)規(guī)矩矩
//4*3
//int[][] arr = {{1,2},{4,5,6},{7,8,9},{10,11,12}};
/* 楊輝三角
1 0 0 0 0
1 1 0 0 0
1 2 1 0 0
1 3 3 1 0 0
1 4 6 4 1 0
1 5 10 10 5 1
*/
final int N = 5;
int[][] arr = new int[N][N]; //有默認值為0
for (int i=0; i<N; i++)
{
for (int j=0; j<=i; j++)
{
if (j==0 || i==j) //在0列上的,和對角線上的,都為1
{
arr[i][j] = 1;
}
else if (i>j)
{
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
// {
// if (i>j)
// {
// arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
// }
// }
}
}
//輸出
for (int row=0; row<arr.length; row++)
{
for (int col=0; col<arr[row].length; col++)
{
System.out.print(arr[row][col]+"\t");
}
System.out.println("");
}
}
public static void main3(String[] args)
{
//從鍵盤接收3行4列中的最大值
int[][] arr = new int[3][4];
int index = 0;
for (int row=0; row<arr.length; row++)
{
for (int col=0; col<arr[row].length; col++)
{
index++;
System.out.println("請輸入第"+index+"個元素:");
Scanner sc = new Scanner(System.in);
arr[row][col] = sc.nextInt();
//求最大值
}
}
//求最大值
//單獨最大值,沒有在輸入元素時找最大值
int max = arr[0][0];
for (int row=0; row<arr.length; row++)
{
for (int col=0; col<arr[row].length; col++)
{
if (max < arr[row][col])
{
max = arr[row][col];
}
}
}
System.out.println("最大值為:"+max);
//輸出
for (int row=0; row<arr.length; row++)
{
for (int col=0; col<arr[row].length; col++)
{
System.out.print(arr[row][col]+",");
}
System.out.println("");
}
}
public static void main2(String[] args)
{
//二維數(shù)組的定義方式
//對于一維數(shù)組
int[] arr1 = new int[]{1,2,3,4,5};
//對于二維數(shù)組,一開始有初值的定義方式
//一個二維數(shù)組,由多個一維數(shù)組組成
//int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
//int[] arr1 = {1,2,3,4,5}
//可以簡化為
int[][] arr = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
//輸出
//手動去約束循環(huán)條件執(zhí)行的次數(shù)
//length
System.out.println("二維數(shù)組的長度:"+arr.length);
System.out.println("其中的一維數(shù)組長度:"+arr[0].length+","+arr[1].length+","+arr[2].length+","+arr[3].length);
for (int row=0; row<arr.length; row++)
{
for (int col=0; col<arr[row].length; col++)
{
System.out.print(arr[row][col]+",");
}
System.out.println("");
}
}
public static void main1(String[] args)
{
//存儲3個學(xué)生的3門成績
int[][] scoreArr = new int[3][3];
//開辟空間,3*3=9個空間
//二維數(shù)組,由多個一維數(shù)組組成,堆區(qū)申請空間,int a;棧區(qū)
//賦值
//存第一個學(xué)生的三門成績
scoreArr[0][0] = 80;
scoreArr[0][1] = 70;
scoreArr[0][2] = 80;
//存第二個學(xué)生的三門成績
scoreArr[1][0] = 90;
scoreArr[1][1] = 90;
scoreArr[1][2] = 95;
//存第三個學(xué)生的三門成績
scoreArr[2][0] = 95;
scoreArr[2][1] = 80;
scoreArr[2][2] = 85;
//輸出
//打印一維數(shù)組,需要一個循環(huán)
//打印0行的值
//scoreArr[0][col]
// for (int col=0; col<3; col++)
// {
// System.out.print(scoreArr[0][col]+",");
// }
// System.out.println("");
// //scoreArr[1][col]
// for (int col=0; col<3; col++)
// {
// System.out.print(scoreArr[1][col]+",");
// }
// System.out.println("");
// //scoreArr[2][col]
// for (int col=0; col<3; col++)
// {
// System.out.print(scoreArr[2][col]+",");
// }
// System.out.println("");
for (int row=0; row<3; row++)
{
for (int col=0; col<3; col++)
{
System.out.print(scoreArr[row][col]+",");
}
System.out.println("");
}
}
}
清哥好課堂公眾號
微信號 : qghktit
新浪微博:清哥好課堂