目錄
1 陣列的基本用法
1.1陣列是什么
1.2創建陣列
1.3陣列的使用
2 陣列作為方法的引數
2.1基本用法
2.2參考的理解
2.3認識null
2.4認識JVM記憶體區域劃分
3陣列作為方法的回傳值
4 陣列練習
4.1陣列轉字串
4.2查找陣列中的指定元素(二分查找)
1 陣列的基本用法
1.1陣列是什么
陣列是用一段連續的空間來儲存一些相同型別的資料,
陣列中的每一個資料都有自己的唯一下標,這個下標也是訪問這個元素的標識,下標是從0開始的
例如陣列中有5個數,它里面的資料于資料所對應分下標如圖

例如:
1,2,3,4,5,6,7就可以用一個陣列來存盤
1.2創建陣列
基本語法:
資料的型別[]陣列名稱={初始化資料};
資料的型別[]陣列名稱=new 資料型別[要存放的資料的個數]{初始化資料};
示例代碼:
int[]array1={1,2,3,4,5};
int[]array2=new int[5]={1,2,3,4,5};
1.3陣列的使用
陣列的基本的使用有兩個,1是或去陣列的長度,2是訪問陣列的每一個元素
示例代碼:
public static void main(String[] args) {
int[]array={1,2,3,4,5};
//獲取陣列的長度
int len=array.length;
System.out.println(len);
//通過陣列的下標訪問陣列
System.out.println(array[0]);
}

注意事項
public static void main(String[] args) {
int[]array={1,2,3,4,5};
//for回圈遍歷
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
System.out.println();
//foreach遍歷陣列,
for (int x:
array) {
System.out.print(x);
}
System.out.println();
}

2 陣列作為方法的引數
2.1基本用法
示例代碼:陣列的遍歷
public static void playArray(int[]array){
for (int i = 0; i <array.length ; i++) {
System.out.print(array[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
playArray(arr);
}

在這個代碼中arr是實參,array是形參,array.legth也可以獲取陣列的長度
2.2參考的理解
首先我們來看下面的代碼:
public static void change(int num){
num=20;
System.out.println("num="+num);
}
public static void main(String[] args) {
int a=10;
change(a);
System.out.println("a="+a);
}

很明顯我們想要通過方法去改變a是做不到的,因為num是a的拷貝而已,它們只是值相同而已
那么我們如果就要對某個空間上資料通過方法進行修改要怎么做呢?
這里就引入了參考的概念
參考:參考也是一種變數,不過它儲存的是一個物件的地址(物件的概念在以后討論),
下面我們來看一段代碼
public static void change(int[]array){
for(int i=0;i<array.length;i++){
array[i]*=2;
}
}
public static void main(String[] args) {
int arr[]={1,2,3,4,5};
change(arr);
playArray(arr);
}
我們可以看到陣列中的資料被改變了,這到底是為什么呢,下面我們來討論這個問題,
首先,我要告訴大家陣列是一個參考型別,陣列名就是這個參考型別的變數名,這個變數里面存放這陣列中元素的地址,那么array對arr的一份拷貝,也就是說array中也存放這相同的地址,所有通過地址就可以改變地址所對應空間的值,
如圖:

2.3認識null
2.4認識JVM記憶體區域劃分

JVM的內寸被劃分為了幾個不同的區域
3陣列作為方法的回傳值
示例代碼:將一個陣列中的每一個元素擴大2倍并回傳
public static int[]toDouble(int[]array){
int[]returnArray=new int[array.length];
for (int i = 0; i <array.length ; i++) {
returnArray[i]=array[i];
}
return returnArray;
}
public static void main(String[] args) {
int arr[]={1,2,3,4,5};
playArray(toDouble(arr));
}

4 陣列練習
4.1陣列轉字串
代碼:
/**
* 陣列轉字串
* @param array 要轉換的陣列
* @return 轉換好的字串
*/
public static String toString(int[]array){
String str="[";
for(int i=0;i<array.length;i++){
str+=array[i];
if(i<array.length-1){
str+=",";
}
}
str+="]";
return str;
}
public static void main(String[] args) {
int arr[]={1,2,3,4,5};
System.out.println(toString(arr));
}

4.2查找陣列中的指定元素(二分查找)
/**
* 二分查找
* @param array 待查找的陣列
* @param key 要查找的數
* @return 如果找的回傳要查找的數的下標,如果找不到回傳錯誤資訊
*/
public static int binarySearch(int[]array,int key){
int left=0;
int right=array.length-1;
while(left<=right){
int mid=(left+right)/2;
if(array[mid]>key){
right=mid-1;
}else if(array[mid]<key){
left=mid+1;
}else{
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int arr[]={1,2,3,4,5};
System.out.println(binarySearch(arr,2));
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/335357.html
標籤:其他
上一篇:在VMware上如何創建虛擬機以及安裝linux作業系統
下一篇:Linux實操篇 實用指令
