Java中陣列及相關類的使用

qq_46027243發表於2020-11-04

一,普通陣列

1,新建陣列:

elementType[ ] arrayRefVai;(元素型別 [] 陣列名)
例如:double[] mylist = new double[10]。

2,訪問陣列:

用下標訪問某個資料,如 mylist[0] 表示 mylist 陣列的第一個元素。

3,獲取陣列的長度:

int n = mylist.length, length後沒有括號。

4,foreach迴圈遍歷陣列:

例如輸出陣列mylist中的所有元素:

double[] mylist = new double[10];
for(double e:mylist)
{
   System.out.print(e);
}

5,陣列的複製:

(1) 使用迴圈語句逐個複製陣列的元素:

for(int i=0; i<mylist.length; ++i)
{
   copylist[i] = mylist[i];
}

(2) 使用System類中的靜態方法 arraycopy:
(這裡的arraycopy違反了java命名習慣)

int[] mylist = new int[5];
int[] copylist = new int[5];
for(int i=0; i<5; ++i)
{
   mylist[i] = i;
   copylist[i] = 5*i;
}
int start1 = 0;
int start2 = 2;
int length = 3;
//從mylist的start1位置開始,將mylist中的length個資料複製,並賦值給copylist從start2位置開始的length個資料
System.arraycopy(mylist, start1, copylist, start2, length);

注意,這裡的 start1 、start2 和 length 的大小必須要合適;
例如:mylist 從 start1位置開始,後面必須要有大於等於 length 個資料來用於複製;copylist 從 start2 位置開始,後面必須要有大於等於 length 個位置用來貼上。否則會報錯。

(3) 使用clone方法複製:
一個類物件若想使用 clone 方法,必須要實現 Cloneable 介面,陣列已經實現了該介面,可以直接使用 clone() 方法。

int[] mylist = new int[5];
int[] copylist = copylist = mylist.clone();

6,可變長引數列表:

可以將型別相同但個數可變的引數傳遞個方法。

public class Test {
   public static void main(String[] args)
   {
	   print(1,2,3);
	   print(4,5,6,7);
   }
   
   public static void print(int... num) //型別名後加三個點再加物件名
   {
	   for(int i=0; i<num.length; ++i)
	   {
		   System.out.print(num[i] + " ");
	   }
   }
}

這裡的 print 方法既可以輸出任意個數的整型值,num 在這裡相當於一個陣列。

注意:若方法的引數列表中還有其他的引數,則可變長引數必須放在最後一個,任何常規引數都要在它之前。

7,陣列的排序:

(1)使用選擇排序、氣泡排序的演算法。
(2)直接使用Collections.sort()方法:

java.util.Collections.sort(mylist);

(3)使用 Arrays 類中的sort () 方法:如下表所示。

二,Arrays類

1,Arrays類常用功能及方法

Arrays類位於 java.util包中,其中包含一些常見的陣列操作方法。

功能方法
全部排序 :java.util.Arrays.sort(mylist)
部分排序:java.util.Arrays.parallelSort(mylist, start, end)//對start到end-1的資料排序
二分查詢法:java.util.Arrays.binarySearch(mylist, temp)//temp為待查詢資料
陣列比較,返回布林值:java.util.Arrays.equals(list1,list2)
全部填充:java.util.Arrays.fill(mylist,5)//全部填充為5
部分填充:java.util.Arrays.fill(mylist, start, end, 8)//將從start到end-1的資料填充為8

三,ArrayList類

1,ArrayList常用功能及方法

普通陣列一旦建立陣列大小就固定了,Arraylist類可以建立一個陣列用來儲存不限定個數的資料。

ArrayList<String> list1 = new ArrayList<>(); //儲存多個字串
ArrayList<double> list2 = new ArrayList<>(); //儲存多個double資料
ArrayList<int> list3 = new ArrayList<>(); //儲存多個int資料
功能方法
增加一個新元素o到該列表的末尾add(E):void
增加一個新元素o到該列表的指定下標處add(index: int, o: E): void
清除列表中的所有元素clear() : void
如果該列表包含元素o,則返回truecontains(o: Object): boolean
返回該列表指定下標位置的元素get(index: int) : E
返回列表中第一個匹配元素的下標indexOf(o: Object): int
如果該列表不包含任何元素,則返回trueisEmpty(): boolean
返回列表中匹配的最後一個元素的下標lastIndexOf(o: Object): int
去除列表中的第一個元素。如果該元素被去除,則返回 trueremove(o: Object): boolean
返回列表中的元素個數size() : int
去除指定下標位置的元素。如果該元素被去除,則返回 trueremove(index: int): E
設定指定下標位置的元素set(index: int, o: E): E

ArraryList類的其他使用方法:

2,用普通陣列來建立ArrayList:

String[] array = {"1","2","3"};
ArrayList<String> list = new ArrayList<>(Arrays.asList(array));

3,用ArrayList物件來建立普通陣列:

String[] array1 = new String[list.size()];	
list.toArray(array1);//將ArrayList類物件list的內容複製到array1中。

4,用Collections.sort()方法排序:

java.util.Collection.sort(list);//排序

5,用Collections.max()和Collections.min()找最值:

java.util.Collection.max(list);//最大值
java.util.Collection.min(list);//最小值

6,用Collections.shuffle()來隨機打亂列表元素:

java.util.Collection.shuffle(list);//隨機打亂列表元素

相關文章