java二維數(shù)組基礎(chǔ)知識詳解
1. 查找
1) 順序查找 SeqSearch.java
2) 二分查找【二分法,放在算法講解】
2. 順序查找
有一個數(shù)列:白眉鷹王、金毛獅王、紫衫龍王、青翼蝠王猜數(shù)游戲:從鍵盤中任意輸入一個名稱,判斷數(shù)列中是否 包含此名稱【順序查找】 要求: 如果找到了,就提示找到,并給出下標(biāo)值。
import java.util.Scanner; public class Test21 { public static void main(String[] args) { //有一個數(shù)列:白眉鷹王、金毛獅王、紫衫龍王、青翼蝠王猜數(shù)游戲: //從鍵盤中任意輸入一個名稱,判斷數(shù)列中是否 包含此名稱【順序查找】 // 要求: 如果找到了,就提示找到,并給出下標(biāo)值。 // 思路分析 1. 定義一個字符串?dāng)?shù)組 // 2. 接收用戶輸入, 遍歷數(shù)組,逐一比較,如果有,則提示信息,并退出 //定義一個字符串?dāng)?shù)組 Scanner myScanner = new Scanner(System.in); String[] names = {"白眉鷹王", "金毛獅王", "紫衫龍王", "青翼蝠王"}; System.out.println("請輸入名字"); String findname = myScanner.next(); //遍歷數(shù)字組 int index = -1;//判斷找沒找到 for(int i=0;i<names.length;i++) { if(findname.equals(names[i]))//使用equals比較字符串是相等 { System.out.println("恭喜你找到了"+findname); System.out.println("下標(biāo)是"+i); index = i; break; } } if(index==-1)//沒找到 { System.out.println("沒找到"+findname); } } }
3. 二分查找
僅當(dāng)了解,后面會詳細(xì)講解
import java.util.Scanner; public class Test21 { public static void main(String[] args) { Scanner myScanner = new Scanner(System.in); int arr[]={1,2,3,4,5,6,7,8,9,10}; int left=0; int right=arr.length-1; System.out.println("請輸入要查找的數(shù)字"); int n =myScanner.nextInt(); while(left<=right) { int mid = (left+right)/2; if(arr[mid]<n) { left=mid+1; } else if(arr[mid]>n) { right=mid-1; } else { System.out.println("找到啦,下標(biāo)是"+mid); break; } } if(left>right) { System.out.println("沒找到"); } } }
4. 多維數(shù)組
4.1 二維數(shù)組 175
請用二維數(shù)組輸出如下圖形
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
import java.util.Scanner; public class Test21 { public static void main(String[] args) { int arr[][]={{0,0,0,0,0,0},{0,0,1,0,0,0},{0,2,0,3,0,0},{0,0,0,0,0,0}}; //輸出二維數(shù)組 for(int i=0;i<arr.length;i++) { //arr[i]表示二維數(shù)組的第i+1個元素,比如arr[0]表示二維數(shù)組的第一個元素 //arr[i].length表示得到的對應(yīng)的一維數(shù)組的長度 for(int j=0;j<arr[i].length;j++) { System.out.print(arr[i][j]+" ");//輸出一維數(shù)組 } System.out.println();//換行 } } }
4.2 二維數(shù)組細(xì)節(jié)
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
1. 從定義形式上看 int[][]
2. 可以這樣理解,原來的一維數(shù)組的每個元素是一維數(shù)組, 就構(gòu)成二維數(shù)組
3. 二維數(shù)組的個數(shù)System.out.println("二維數(shù)組的元素個數(shù)"+arr.length);//4
4. 二維數(shù)組的每個元素是一維數(shù)組, 所以如果需要得到每個一維數(shù)組的值 還需要再次遍歷
5. 如果我們要訪問第 (i+1)個一維數(shù)組的第 j+1 個值 arr[i][j];
舉例 訪問 3, =》 他是第 3 個一維數(shù)組的第 4 個值 arr[2][3]
System.out.println("第 3 個一維數(shù)組的第 4 個值=" + arr[2][3]); //3
5. 二維數(shù)組的使用方式 176
1) 語法: 類型[][] 數(shù)組名=new 類型[大小][大小]
2) 比如: int a[][]=new int[2][3]
//二維數(shù)組的使用 public class Test21 { public static void main(String[] args) { int arr[][]=new int[2][3]; arr[1][1]=8; //遍歷arr 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();//換行 } } }
6. 二維數(shù)組的動態(tài)初始化
1.先聲明:類型 數(shù)組名[][]; 再定義(開辟空間) 數(shù)組名 = new 類型[大小][大小]
例如
int arr[][];//聲明
arr=new int[2][3];//定義
2.動態(tài)初始化-列數(shù)不確定 178
例
看一個需求:動態(tài)創(chuàng)建下面二維數(shù)組,并輸出
i = 0: 1
i = 1: 2 2
i = 2: 3 3 3
public class Test21 { public static void main(String[] args) { int arr[][]=new int[3][];//列不確定可以不寫 創(chuàng)建 二維數(shù)組,一共有 3 個一維數(shù)組,但是每個一維數(shù)組還沒有開數(shù)據(jù)空間 for(int i=0;i<arr.length;i++) { arr[i]=new int[i+1];//給一維數(shù)組開辟空間 for(int j=0;j<arr[i].length;j++) { arr[i][j]=i+1;//給一位數(shù)組元素賦值 System.out.print(arr[i][j]+" "); } System.out.println(); } } }
7. 二維數(shù)組的靜態(tài)初始化 179
定義 類型 數(shù)組名[][] = {{值 1,值 2..},{值 1,值 2..},{值 1,值 2..}}
使用即可 [ 固定方式訪問 ]
比如:
int[][] arr = {{1,1,1}, {8,8,9}, {100}};
解讀
1. 定義了一個二維數(shù)組 arr
2. arr 有三個元素(每個元素都是一維數(shù)組)
3. 第一個一維數(shù)組有 3 個元素 , 第二個一維數(shù)組有 3 個元素, 第三個一維數(shù)組有 1 個元素
public class Test21 { public static void main(String[] args) { int[][] arr = {{1,1,1}, {8,8,9}, 100};//100沒有帶{},必報錯 } }
8. 二維數(shù)組練習(xí) 180
8.1 int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍歷該二維數(shù)組,并得到和
//int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍歷該二維數(shù)組,并得到和 public class Test21 { public static void main(String[] args) { int arr[][]={{4,6},{1,4,5,7},{-2}}; int sum=0; for(int i=0;i<arr.length;i++) { for(int j=0;j<arr[i].length;j++) { sum+=arr[i][j]; System.out.print(arr[i][j]+" "); } System.out.println(); } System.out.println("sum="+sum); } }
到此這篇關(guān)于java二維數(shù)組基礎(chǔ)知識詳解的文章就介紹到這了,更多相關(guān)java二維數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中List去除重復(fù)數(shù)據(jù)的5種方式總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于java中List去除重復(fù)數(shù)據(jù)的5種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01IDEA連接MySQL數(shù)據(jù)庫的4種方法圖文教程
IDEA是一種流行的Java開發(fā)工具,可以方便地連接MySQL,這篇文章主要給大家介紹了關(guān)于IDEA連接MySQL數(shù)據(jù)庫的4種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12java String 類的一些理解 關(guān)于==、equals、null
在對字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數(shù)時候==跟equal()的結(jié)果都是相同的。2009-06-06Spring使用AspectJ的注解式實現(xiàn)AOP面向切面編程
這篇文章主要介紹了Spring使用AspectJ的注解式實現(xiàn)AOP面向切面編程的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06