首頁 > 軟體

java二維陣列基礎知識詳解

2023-02-22 06:00:48

1. 查詢

1) 順序查詢 SeqSearch.java

2) 二分查詢【二分法,放在演演算法講解】

2. 順序查詢

有一個數列:白眉鷹王、金毛獅王、紫衫龍王、青翼蝠王猜數遊戲:從鍵盤中任意輸入一個名稱,判斷數列中是否 包含此名稱【順序查詢】 要求: 如果找到了,就提示找到,並給出下標值。

import java.util.Scanner;
public class Test21
{
public static void main(String[] args)
{
//有一個數列:白眉鷹王、金毛獅王、紫衫龍王、青翼蝠王猜數遊戲:
//從鍵盤中任意輸入一個名稱,判斷數列中是否 包含此名稱【順序查詢】
// 要求: 如果找到了,就提示找到,並給出下標值。
// 思路分析 1. 定義一個字串陣列
// 2. 接收使用者輸入, 遍歷陣列,逐一比較,如果有,則提示資訊,並退出
//定義一個字串陣列
Scanner myScanner = new Scanner(System.in);
String[] names = {"白眉鷹王", "金毛獅王", "紫衫龍王", "青翼蝠王"};
System.out.println("請輸入名字");
String findname = myScanner.next();
//遍歷數位組
int index = -1;//判斷找沒找到
for(int i=0;i<names.length;i++)
{
if(findname.equals(names[i]))//使用equals比較字串是相等
{
System.out.println("恭喜你找到了"+findname);
System.out.println("下標是"+i);
index = i;
break;
}
}
if(index==-1)//沒找到
{
System.out.println("沒找到"+findname);
}
}
}

3. 二分查詢

僅當了解,後面會詳細講解

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("請輸入要查詢的數位");
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("找到啦,下標是"+mid);
break;
}
}
if(left>right)
{
System.out.println("沒找到");
}
}
}

4. 多維陣列

4.1 二維陣列 175

請用二維陣列輸出如下圖形

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}};
//輸出二維陣列
for(int i=0;i<arr.length;i++)
{
//arr[i]表示二維陣列的第i+1個元素,比如arr[0]表示二維陣列的第一個元素
//arr[i].length表示得到的對應的一維陣列的長度
for(int j=0;j<arr[i].length;j++)
{
System.out.print(arr[i][j]+" ");//輸出一維陣列
}
System.out.println();//換行
}
}
}

4.2 二維陣列細節

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. 可以這樣理解,原來的一維陣列的每個元素是一維陣列, 就構成二維陣列

3. 二維陣列的個數System.out.println("二維陣列的元素個數"+arr.length);//4

4. 二維陣列的每個元素是一維陣列, 所以如果需要得到每個一維陣列的值 還需要再次遍歷

5. 如果我們要存取第 (i+1)個一維陣列的第 j+1 個值 arr[i][j];

舉例 存取 3, =》 他是第 3 個一維陣列的第 4 個值 arr[2][3]

System.out.println("第 3 個一維陣列的第 4 個值=" + arr[2][3]); //3

5. 二維陣列的使用方式 176

1) 語法: 型別[][] 陣列名=new 型別[大小][大小]

2) 比如: int a[][]=new int[2][3]

//二維陣列的使用

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. 二維陣列的動態初始化

1.先宣告:型別 陣列名[][]; 再定義(開闢空間) 陣列名 = new 型別[大小][大小]

例如

int arr[][];//宣告

arr=new int[2][3];//定義

2.動態初始化-列數不確定 178

看一個需求:動態建立下面二維陣列,並輸出

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][];//列不確定可以不寫 建立 二維陣列,一共有 3 個一維陣列,但是每個一維陣列還沒有開資料空間
for(int i=0;i<arr.length;i++)
{
arr[i]=new int[i+1];//給一維陣列開闢空間
for(int j=0;j<arr[i].length;j++)
{
arr[i][j]=i+1;//給一位陣列元素賦值
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}

7. 二維陣列的靜態初始化 179

定義 型別 陣列名[][] = {{值 1,值 2..},{值 1,值 2..},{值 1,值 2..}}

使用即可 [ 固定方式存取 ]

比如:

int[][] arr = {{1,1,1}, {8,8,9}, {100}};

解讀

1. 定義了一個二維陣列 arr

2. arr 有三個元素(每個元素都是一維陣列)

3. 第一個一維陣列有 3 個元素 , 第二個一維陣列有 3 個元素, 第三個一維陣列有 1 個元素

public class Test21
{
public static void main(String[] args)
{
int[][] arr = {{1,1,1}, {8,8,9}, 100};//100沒有帶{},必報錯
}
}

8. 二維陣列練習 180

8.1 int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍歷該二維陣列,並得到和

//int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍歷該二維陣列,並得到和
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);
}
}

到此這篇關於java二維陣列基礎知識詳解的文章就介紹到這了,更多相關java二維陣列內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com