1. 程式人生 > >20180715-Java 陣列

20180715-Java 陣列

double[] myList //首選方法

double myList[] //效果相同,但不是首選方法

 

該例項完整地展示瞭如何建立、初始化和操縱陣列:


public class TestArray{
public static void main(String[] args){
double[] myList = {1,3,5.6,9.8,1.2};

//列印所有陣列元素

for(int i= 0;i<myList.length;i++){
System.out.println(myList[i] + "");
}


// 計算所有元素的總和
double total = 0;
for(int i = 0;i<myList.length;i++){
total = total+myList[i];
//total += myList[i];
}
System.out.println("Total is "+ total);

//查詢最大元素
double max = myList[0];
for(int i = 0;i<myList.length;i++){
if(myList[i]>max){
max = myList[i];
}
}
System.out.println("Max is "+ max);
}
}

 

1.0
3.0
5.6
9.8
1.2
Total is 20.599999999999998
Max is 9.8


該例項用來顯示陣列myList中的所有元素:

 

public class TestArray2{
public static void main(String[] args){
double[] myList = {1.9,2.9,3.4,3.5};

//列印所有陣列元素
for(double element: myList){
System.out.println(element);
}
}
}

 

1.9
2.9
3.4
3.5

 


列印int陣列中元素的方法

 

public static void printArray(int[] array){
for(int i=0;i<array.length;i++){
System.out.println(array[i] +" ");
}
}


呼叫printArray 方法打印出3,1,2,6,4,

printArray(new int[]{3, 1, 2, 6, 4, 2});

 

public static int[] reverse(int[] list){
int[] result = new int[list.length];

for(int i=0,j=result.length-1;i<list.length;i++,j--){
result[j] = list[i];
}
return result;
}

 


Java陣列
陣列對於每一門編輯應語言來說都是重要的資料結構之一,當然不同語言對陣列的實現及處理也不盡相同。
Java語言中提供的陣列是用來儲存固定大小的同類型元素。
你可以宣告一個數組變數,如numbers[100]來代替直接宣告100個獨立變數number0,number1,....,number99。
本教程將為大家介紹Java陣列的宣告、建立和初始化,並給出其對應的程式碼。

宣告陣列變數
首先必須宣告陣列變數,才能在程式中使用陣列。下面是宣告陣列變數的語法:

dataType[] arrayRefVar; //首選的方法
dataType arrayRefVar[]; // 效果相同,但不是首選方法
注意: 建議使用dataType[] arrayRefVar 的宣告風格宣告陣列變數。
dataType arrayRefVar[] 風格是來自 C/C++ 語言 ,在Java中採用是為了讓 C/C++ 程式園能夠快速理解java語言。

建立陣列
Java語言使用new操作符來建立陣列,語法如下:
arrayRefVar = new dataType[arraySize];
上面的語法語句做了兩件事:
一、使用dataType[arraySize]建立了一個數組。
二、把新建立的陣列的引用賦值給變數 arrayRefVar。
陣列變數的宣告,和建立陣列可以用一條語句完成,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
另外,你還可以使用如下的方式建立陣列。
dataType[] arrayRefVar = {value0, value1, ..., valuek};
陣列的元素是通過索引訪問的。陣列索引從0開始,所以索引值從0到arrayRefVar.length-1。

下面的語句首先聲明瞭一個數組變數myList,接著建立了一個包含10個double型別元素的陣列,並且把它的引用賦值給myList變數。
double[] myList = new double[10];


myList reference myList[0] 12.3
myList[1] 13.2
myList[2] 3.3
Array reference myList[3] 4.3
variable myList[4] 5.3 Element value
myList[5] 6.3
myList[6] 7.3
Array element at index 5 myList[7] 8.3
myList[8] 9.3
myList[9] 10.3

處理陣列
陣列的元素型別和陣列的大小都是確定的,所以當處理陣列元素時候,我們通常使用基本迴圈或者foreach迴圈。

foreach迴圈
JDK 1.5 引進了一種新的迴圈型別,被稱為foreach迴圈或者加強型迴圈,它能在不使用下標的情況下遍歷陣列。

陣列作為函式的引數
陣列可以作為引數傳遞給方法

陣列作為函式的返回值

Arrays 類
java.util.Arrays類能方便地運算元組,它提供的所有方法都是靜態的。具有以下功能:
給陣列賦值:通過fill方法。
對陣列排序:通過sort方法,按升序。
比較陣列:通過equals方法比較陣列中元素值是否相等。
查詢陣列元素:通過binarySearch方法能對排序好的陣列進行二分查詢法操作。

方法和說明
public static int binarySearch(Object[] a, Object key)
用二分查詢演算法在給定陣列中搜索給定值的物件(Byte,Int,double等)。陣列在呼叫前必須排序好的。
如果查詢值包含在陣列中,則返回搜尋鍵的索引;否則返回 (-(插入點) - 1)。
public static boolean equals(long[] a, long[] a2)
如果兩個指定的 long 型陣列彼此相等,則返回 true。
如果兩個陣列包含相同數量的元素,並且兩個陣列中的所有相應元素對都是相等的,則認為這兩個陣列是相等的。
換句話說,如果兩個陣列以相同順序包含相同的元素,則兩個陣列是相等的。
同樣的方法適用於所有的其他基本資料型別(Byte,short,Int等)。
public static void fill(int[] a, int val)
將指定的 int 值分配給指定 int 型陣列指定範圍中的每個元素。
同樣的方法適用於所有的其他基本資料型別(Byte,short,Int等)。
public static void sort(Object[] a)
對指定物件陣列根據其元素的自然順序進行升序排列。
同樣的方法適用於所有的其他基本資料型別(Byte,short,Int等)。

 

備註:隨筆中內容來源於網上資料整理,僅供參考。