Java学习 第三章 数组(二)多维数组
多維數(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ù)組的聲明
① 二維數(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ù)組的元素
外層元素:arr[0],arr[1]等
內(nèi)層元素:arr[0][0],arr[1][2]等;
針對初始化方式一、比如: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)即可。
楊輝三角:
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也會跟著改變。
因為此處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ù)組的查找:
①線性查找:
②二分法查找:
//前提:所要查找的數(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想驱动一键安装(联想驱动怎么下载安装)
- 下一篇: Java学习 第三章 数组(三)排序算法