前言
為什么要使用數(shù)組,因為使用數(shù)組可以避免過于的冗雜,方便美觀,簡潔
一、數(shù)組是什么?
可以看成是相同類型元素的一個集合。在內(nèi)存中是一段連續(xù)的空間。
二、數(shù)組的創(chuàng)建
1.數(shù)組的創(chuàng)建:
T[] 數(shù)組名 = new T[N];
T:表示數(shù)組中存放元素的類型
T[]:表示數(shù)組的類型
N:表示數(shù)組的長度
2.數(shù)組的初始化
代碼如下(示例):
int[] array1 = new int[10]; // 創(chuàng)建一個可以容納10個int類型元素的數(shù)組
double[] array2 = new double[5]; // 創(chuàng)建一個可以容納5個double類型元素的數(shù)組
String[] array3 = new double[3]; // 創(chuàng)建一個可以容納3個字符串元素的數(shù)組
***注意:***如果數(shù)組中存儲元素類型為引用類型,默認(rèn)值為null。
2.1動態(tài)初始化:創(chuàng)建數(shù)組,直接數(shù)組中元素的個數(shù)
int[] array = new int[10];
2.2 靜態(tài)初始化:在創(chuàng)建數(shù)組時不直接指定數(shù)據(jù)元素個數(shù),而直接將具體的數(shù)據(jù)內(nèi)容進行指定.
int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
注意事項:
1.靜態(tài)初始化雖然沒有指定數(shù)組的長度,編譯器在編譯時會根據(jù){}中元素個數(shù)來確定數(shù)組的長度。
2.靜態(tài)初始化時, {}中數(shù)據(jù)類型必須與[]前數(shù)據(jù)類型一致。
3.靜態(tài)初始化可以簡寫,省去后面的new T[]。
靜態(tài)和動態(tài)初始化也可以分為兩步,但是省略格式不可以。
int[] array1;
array1 = new int[10];
int[] array2;
array2 = new int[]{10, 20, 30};
// 注意省略格式不可以拆分, 否則編譯失敗
// int[] array3;
// array3 = {1, 2, 3};
如果沒有對數(shù)組進行初始化,數(shù)組中元素有其默認(rèn)值
如果數(shù)組中存儲元素類型為基類類型,默認(rèn)值為基類類型對應(yīng)的默認(rèn)值,
2.3數(shù)組中元素的訪問:
數(shù)組在內(nèi)存中是一段連續(xù)的空間,空間的編號都是從0開始的,依次遞增,該編號稱為數(shù)組的下標(biāo),數(shù)組可以通過下標(biāo)訪問其任意位置的元素。
int[]array = new int[]{10, 20, 30, 40, 50};
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);
還可以進行修改其中的數(shù)值
array[0] = 100;
System.out.println(array[0]);
三.數(shù)組的遍歷
1.逐個打印
如上圖一樣
2.使用for循環(huán)
int[]array = new int[]{10, 20, 30, 40, 50};
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
3.使用for -each
int[] array = {1, 2, 3};
for (int x : array) {
System.out.println(x);
}
四.二維數(shù)組
1.語法:
數(shù)據(jù)類型[][] 數(shù)組名稱 = new 數(shù)據(jù)類型 [行數(shù)][列數(shù)] { 初始化數(shù)據(jù) };
int[][] arr = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
2.遍歷
int[][] arr = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
for (int x[]:arr) {
System.out.println(Arrays.toString(x));
}
}
用Arrays.toString可以很快遍歷出來
五.數(shù)組的一些常用方法
1.數(shù)組轉(zhuǎn)換字符串
int[] arr = {1,2,3,4,5,6};
String newArr = Arrays.toString(arr);
System.out.println(newArr);
2.數(shù)組拷貝
int[] arr = {1, 2, 3, 4, 5};
int[] newarr = new int[3];
newarr = Arrays.copyOf(arr, arr.length);
System.out.println(Arrays.toString(newarr));
3.二分查找
首先先進行對數(shù)組排序
public static int binarySearch(int[]arr,int toFind) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (toFind < arr[mid]) {// 去左側(cè)區(qū)間找
right = mid - 1;
} else if (toFind > arr[mid]) {// 去右側(cè)區(qū)間找
left = mid + 1;
} else {// 相等, 說明找到了
return mid;
}
} //
return -1;
}
4.冒泡排序
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 1; j < arr.length-i; j++) {
if (arr[j-1] > arr[j]) {
int tmp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = tmp;
}
}
}
}
當(dāng)然了,Arrays.sort更便捷文章來源:http://www.zghlxwxcb.cn/news/detail-422523.html
5.數(shù)組逆序
public static void reverse(int[] arr) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
總結(jié)
好了,今天關(guān)于數(shù)組的博客到這里結(jié)束了,歡迎大佬指正,希望大佬們能給個三連,在評論區(qū)暢所欲言啊。文章來源地址http://www.zghlxwxcb.cn/news/detail-422523.html
到了這里,關(guān)于數(shù)組應(yīng)該怎么用?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!