java二維數(shù)組基礎(chǔ)知識(shí)詳解
1. 查找
1) 順序查找 SeqSearch.java
2) 二分查找【二分法,放在算法講解】
2. 順序查找
有一個(gè)數(shù)列:白眉鷹王、金毛獅王、紫衫龍王、青翼蝠王猜數(shù)游戲:從鍵盤中任意輸入一個(gè)名稱,判斷數(shù)列中是否 包含此名稱【順序查找】 要求: 如果找到了,就提示找到,并給出下標(biāo)值。
import java.util.Scanner;
public class Test21
{
public static void main(String[] args)
{
//有一個(gè)數(shù)列:白眉鷹王、金毛獅王、紫衫龍王、青翼蝠王猜數(shù)游戲:
//從鍵盤中任意輸入一個(gè)名稱,判斷數(shù)列中是否 包含此名稱【順序查找】
// 要求: 如果找到了,就提示找到,并給出下標(biāo)值。
// 思路分析 1. 定義一個(gè)字符串?dāng)?shù)組
// 2. 接收用戶輸入, 遍歷數(shù)組,逐一比較,如果有,則提示信息,并退出
//定義一個(gè)字符串?dāng)?shù)組
Scanner myScanner = new Scanner(System.in);
String[] names = {"白眉鷹王", "金毛獅王", "紫衫龍王", "青翼蝠王"};
System.out.println("請(qǐng)輸入名字");
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)了解,后面會(huì)詳細(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("請(qǐng)輸入要查找的數(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
請(qǐng)用二維數(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個(gè)元素,比如arr[0]表示二維數(shù)組的第一個(gè)元素
//arr[i].length表示得到的對(duì)應(yīng)的一維數(shù)組的長(zhǎng)度
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ù)組的每個(gè)元素是一維數(shù)組, 就構(gòu)成二維數(shù)組
3. 二維數(shù)組的個(gè)數(shù)System.out.println("二維數(shù)組的元素個(gè)數(shù)"+arr.length);//4
4. 二維數(shù)組的每個(gè)元素是一維數(shù)組, 所以如果需要得到每個(gè)一維數(shù)組的值 還需要再次遍歷
5. 如果我們要訪問第 (i+1)個(gè)一維數(shù)組的第 j+1 個(gè)值 arr[i][j];
舉例 訪問 3, =》 他是第 3 個(gè)一維數(shù)組的第 4 個(gè)值 arr[2][3]
System.out.println("第 3 個(gè)一維數(shù)組的第 4 個(gè)值=" + 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ù)組的動(dòng)態(tài)初始化
1.先聲明:類型 數(shù)組名[][]; 再定義(開辟空間) 數(shù)組名 = new 類型[大小][大小]
例如
int arr[][];//聲明
arr=new int[2][3];//定義
2.動(dòng)態(tài)初始化-列數(shù)不確定 178

例
看一個(gè)需求:動(dòng)態(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 個(gè)一維數(shù)組,但是每個(gè)一維數(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. 定義了一個(gè)二維數(shù)組 arr
2. arr 有三個(gè)元素(每個(gè)元素都是一維數(shù)組)
3. 第一個(gè)一維數(shù)組有 3 個(gè)元素 , 第二個(gè)一維數(shù)組有 3 個(gè)元素, 第三個(gè)一維數(shù)組有 1 個(gè)元素
public class Test21
{
public static void main(String[] args)
{
int[][] arr = {{1,1,1}, {8,8,9}, 100};//100沒有帶{},必報(bào)錯(cuò)
}
}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ǔ)知識(shí)詳解的文章就介紹到這了,更多相關(guān)java二維數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java二維數(shù)組與稀疏數(shù)組相互轉(zhuǎn)換實(shí)現(xiàn)詳解
- Java二維數(shù)組實(shí)現(xiàn)數(shù)字拼圖效果
- java二維數(shù)組指定不同長(zhǎng)度實(shí)例方法
- java二維數(shù)組實(shí)現(xiàn)推箱子小游戲
- Java二維數(shù)組與動(dòng)態(tài)數(shù)組ArrayList類詳解
- Java二維數(shù)組查找功能代碼實(shí)現(xiàn)
- Java二維數(shù)組實(shí)戰(zhàn)案例
- java二維數(shù)組遍歷的2種代碼
- Java二維數(shù)組計(jì)算集合總結(jié)
- Java二維數(shù)組簡(jiǎn)單定義與使用方法示例
相關(guān)文章
AsyncConfigurerSupport自定義異步線程池處理異常
這篇文章主要為大家介紹了AsyncConfigurerSupport自定義異步線程池處理異常詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Spring Security 安全認(rèn)證的示例代碼
這篇文章主要介紹了Spring Security 安全認(rèn)證的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Java中的服務(wù)發(fā)現(xiàn)與負(fù)載均衡及Eureka與Ribbon的應(yīng)用小結(jié)
這篇文章主要介紹了Java中的服務(wù)發(fā)現(xiàn)與負(fù)載均衡:Eureka與Ribbon的應(yīng)用,通過使用Eureka和Ribbon,我們可以在Java項(xiàng)目中實(shí)現(xiàn)高效的服務(wù)發(fā)現(xiàn)和負(fù)載均衡,需要的朋友可以參考下2024-08-08
任何Bean通過實(shí)現(xiàn)ProxyableBeanAccessor接口即可獲得動(dòng)態(tài)靈活的獲取代理對(duì)象或原生對(duì)象的能力(最新推
這篇文章主要介紹了任何Bean通過實(shí)現(xiàn)ProxyableBeanAccessor接口即可獲得動(dòng)態(tài)靈活的獲取代理對(duì)象或原生對(duì)象的能力,通過示例代碼看到,借助ProxyableBeanAccessor接口默認(rèn)實(shí)現(xiàn)的getReal、getProxy、selfAs方法,很靈活的按需獲取代理或非代理對(duì)象,需要的朋友可以參考下2024-02-02
Java實(shí)現(xiàn)樹形結(jié)構(gòu)的示例代碼
由于業(yè)務(wù)需要,后端需要返回一個(gè)樹型結(jié)構(gòu)給前端,包含父子節(jié)點(diǎn)的數(shù)據(jù)已經(jīng)在數(shù)據(jù)庫中存儲(chǔ)好。本文將為大家分享Java現(xiàn)樹形結(jié)構(gòu)的示例代碼,需要的可以參考下2022-05-05

