日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java学习 第三章 数组(二)多维数组

發(fā)布時間:2023/12/2 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java学习 第三章 数组(二)多维数组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

多維數(shù)組的使用

由數(shù)組構(gòu)成的數(shù)組

二維數(shù)組:
① 二維數(shù)組的聲明和初始化
② 如何調(diào)用數(shù)組的指定位置的元素
③ 如何獲取數(shù)組的長度
④ 如何遍歷數(shù)組
⑤ 數(shù)組元素的默認初始化值 :見ArrayTest1.java
數(shù)組元素是整形:0
數(shù)組元素是浮點型:0.0
數(shù)組元素是char型:0或‘\u0000’
數(shù)組元素是布爾型:false
數(shù)組元素是引用數(shù)據(jù)類型時:null
⑥ 數(shù)組的內(nèi)存解析 :見ArrayTest1.java
① 二維數(shù)組的聲明

int[] arr = new int[]{1,2,3}; //一維數(shù)組 int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};; //一維數(shù)組

① 二維數(shù)組的初始化1

String[][] arr2 = new String[3][2]; String[][] arr3 = new String[3][];

//正確:

int[] arr4[] = new int [][]{{1,2,3},{4,5},{6,7,8}}; int[] arr4[] = {{1,2,3},{4,5},{6,7,8}};//類型推斷

② 如何調(diào)用數(shù)組的指定位置的元素

System.out.println(arr1[0][1]);;//2 System.out.println(arr3[1][1]; //null

③ 如何獲取數(shù)組的長度

System.out.println(arr4.length);//3 System.out.println(arr4[0].length);//3

④ 如何遍歷二維數(shù)組

for(int i = 0;i<arr4[i].length;i++){for(int j = 0;j < arr[i].length;j++){System.out.print(arr4[i][j] + " ");} }

二維數(shù)組遍歷需要兩層for循環(huán)

⑤ 數(shù)組元素的默認初始化值 :見ArrayTest1.java
數(shù)組元素是整形:0
數(shù)組元素是浮點型:0.0
數(shù)組元素是char型:0或‘\u0000’
數(shù)組元素是布爾型:false
數(shù)組元素是引用數(shù)據(jù)類型時:null
⑥ 數(shù)組的內(nèi)存解析 :見ArrayTest1.java
規(guī)定:二維數(shù)組分為外層數(shù)組的元素,內(nèi)層數(shù)組的元素

int[][] arr = new int[4][3];

外層元素:arr[0],arr[1]等
內(nèi)層元素:arr[0][0],arr[1][2]等;

int[][] arr = new int[4][3]; System.out.println(arr[0]);//輸出地址值 System.out.println(arr);//輸出二維數(shù)組首地址

針對初始化方式一、比如:int[][] arr = new int[4][3];
外層元素的初始化值為:地址值
內(nèi)層元素的初始化值為:與一維數(shù)組的初始化情況相同。
針對初始化方式二、比如:int[][] arr = new int[4][];
外層元素的初始化值為:null
內(nèi)層元素的初始化值為:不能調(diào)用,否則報錯。
⑥ 二維數(shù)組的內(nèi)存解析 :

數(shù)組長度一旦確定,就不可修改.

數(shù)據(jù)結(jié)構(gòu):
1.數(shù)據(jù)與數(shù)據(jù)之間的邏輯關系:集合、一對一、一對多、多對多
2.數(shù)據(jù)的存儲結(jié)構(gòu):
線性表:順序表(比如:數(shù)組)、鏈表、棧、隊列
樹形結(jié)構(gòu):二叉樹
圖形結(jié)構(gòu)

算法:
排序算法:
搜索算法:

二維數(shù)組課后練習題:
獲取arr數(shù)組中所有元素的和。:使用for嵌套循環(huán)即可。

int [][] arr = new int[][]{{3,5,8},{12,9},{7,0,6,4}};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.println("總和為: " +sum);

楊輝三角:

package shangguigu; public class array {public static void main(String[] args){//1.聲明并初始化二維數(shù)組int[][] yanghui = new int[10][];//2.給數(shù)組的元素賦值for(int i = 0;i<yanghui.length;i++) {yanghui[i] = new int[i+1];//2.1給首末元素賦值yanghui[i][0] = yanghui[i][i] = 1;//2.2給非首末元素賦值if(i>1) {for(int j = 1;j<yanghui[i].length-1;j++) {yanghui[i][j] = yanghui[i-1][j-1]+yanghui[i-1][j];}}}//3.遍歷二維數(shù)組for(int i = 0;i<yanghui.length;i++) {for(int j = 0;j<yanghui[i].length;j++) {System.out.print(yanghui[i][j]+" ");}System.out.println();}//3.} }


array2 = array1;// 這是把array1的地址賦值給array2,兩個指向的是同一個數(shù)組,所以當array2改變的時候,array1也會跟著改變。

array2 = new int[array1.length}; for(int i=0; i<array2.length; i++) { array2[i] = array1[i]; }

因為此處new了一個新數(shù)組,所以是新開辟了一段內(nèi)存空間,是真的”復制“了array1給array2,修改array2的值不會改變array1.

數(shù)組的復制:

String[] arr1 = new String[arr.length]; for(int i = 0;i<arr1.length;i++){ arr1[i] = arr[i]; }

數(shù)組的反轉(zhuǎn):

for(int i =0;i<arr1.length/2;i++){String temp = arr[i]; arr[i] = arr[arr.length -i-1] = temp; }

數(shù)組的反轉(zhuǎn)方式2:

for(int i = 0,j = arr.length - 1;i<j;i++,j--){ String temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }

數(shù)組的查找:
①線性查找:

String dest = "BB"; for(int i = 0; i<arr.length ; i++){if(dest.equals(arr[i])){ System.out.println("找到了指定位置的元素,位置為:"+i); isFlag = false; break; } } if(isFlag){ System.out.println("很遺憾,沒有找到哦!")}

②二分法查找:
//前提:所要查找的數(shù)組必須有序

//3.二分法查找

int[] arr2 = new int[] {-98,-34,2,34,54,66,79,105,210,333};int dest = -34;int head = 0;//初始索引值int end = arr2.length - 1;//初始的末索引boolean isFlag = true;while(head<=end) {int middle = (head+end)/2;if(dest == arr2[middle]) {System.out.println("找到了指定位置的元素,位置為: "+middle);isFlag = False;break;}else if(arr2[middle]>dest) {end = middle-1;}else {head = middle + 1;}}if(isFlag) {System.out.println("很遺憾,沒有找到!");}

總結(jié)

以上是生活随笔為你收集整理的Java学习 第三章 数组(二)多维数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。