JAVA打怪之路 - Java數組

Java數組

Java數組是java的重要數據結構,但是後面接觸List就會逐漸捨棄數組,集合和數組之間各有利弊,但是使用較多的還是集合,主要還是看具體的使用場景,下面就講下數組的知識吧。

一、數組概念
(1)數組是相同類型數據的有序集合,數組本身是引用數據類型 ,數組中的元素可以是任何數據類型,包括基本數據類型和引用數據類型。
(2)創建數組對象會在內存中開闢一整塊連續的空間,而數組名中引用的是這塊連續空間的首地址。
(3)數組的長度一旦確定,就不能修改。
(4)數組元素下標從0開始;長度爲n的數組合法下標取值範圍: 0 —>n-1;如int a[]=new int[3]; 可引用的數組元素爲a[0]、a[1]、a[2],獲取數組長度的屬性爲length。
(5)數組是引用類型,它的元素相當於類的成員變量,因此數組一經分配空間,其中的每個元素也被按照成員變量同樣的方式被隱式初始化。 例如:
注:對於基本數據類型而言,數組元素的默認初始化值各有不同。
注:對於引用數據類型而言,數組元素的默認初始化值爲null 。
在這裏插入圖片描述
二、一維數組
在這裏插入圖片描述
一維數組和二維數組是常用的數組結構,很少會用到三維以上的數組,主要是要了解數組的內存分析。在這裏插入圖片描述
三、多維數組
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
四、Arrays工具類使用
java.util.Arrays類即爲操作數組的工具類,包含了用來操作數組(比如排序和搜索)的各種方法。
在這裏插入圖片描述
五、數組使用中的常見異常
在這裏插入圖片描述
附錄:數組基本操作

eg: String[] arr = new String[]{“JJ”,“DD”,“MM”,“BB”,“GG”,“AA”};
①數組複製

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

②數組反轉

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

③數組遍歷

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

④查找數組元素-線性查找

String dest = "BB";
dest = "CC";
boolean isFlag = true;
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("很遺憾,沒有找到的啦!");
}

⑤查找數組元素-二分查找法 注:數組必須有序

int[] arr2 = new int[]{-98,-34,2,34,54,66,79,105,210,333};	
		int dest1 = -34;
		dest1 = 35;
		int head = 0;    //初始的首索引
		int end = arr2.length - 1;   //初始的末索引
		boolean isFlag1 = true;
		while(head <= end){
			int middle = (head + end)/2;
			if(dest1 == arr2[middle]){
				System.out.println("找到了指定的元素,位置爲:" + middle);
				isFlag1 = false;
				break;
			}else if(arr2[middle] > dest1){
				end = middle - 1;
			}else{//arr2[middle] < dest1
				head = middle + 1;
			}
		}
		if(isFlag1){
			System.out.println("很遺憾,沒有找到的啦!");
		}	
	 }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章