java開發中經常使用的數組以及使用方法

  本文介紹了在java開發中經常使用的數組,以及數組的使用方法,注意事項。

  一.什么是數組

  1. 數組:數組即是一堆邏輯上無序的元素的序列,用來存儲多個相同類型的數據,數組可以看做是一個集合,其內部元素存儲在一個連續的內存塊當中,并通過索引(即數組中元素的下標)來訪問。

  2. 特點:

  A. 數組中的元素數據類型都相同;

  B. 各元素在內存中的存儲是有先后順序的;

  C. 表示數組元素的時候,需要使用數組名和該元素在數組中的位置來表示;

  3. 分類:

  最簡單的形式是一維數組,即數組中直接存儲元素,如{1,2,3,4};其次是二維數組,在二維數組中的元素都是一維數組,如{{123},{456},{789}};再次意義上可以有更多維的數組。

  二.Java中的數組

  (以下示例中皆以整型一維數組 int array[] 為例)

  1. 特點:

  java中的數組滿足數組的所有含義和特點;

  2. 聲明數組:

  在java中,聲明數組時有兩種情況:有大小,或者無大小,同時在聲明數組時,需要聲明數組的數據類型,以及數組的維度,聲明方式分為以下幾種:

  a. int array[] = {1,2,3};直接在聲明數組的同時進行賦值;

  b. int array[] ;聲明數組未進行賦值操作;

  c. Int array[] = new int[10];聲明數組時定義了數組的大小;

  3. 數組長度:

  使用數組的 length 屬性,可已查看數組的大小:

  Int length = array.lenth;

  4. 遍歷數組:

  在開發中,根據數組的特性,經常會通過循環來遍歷數組,如for循環或forEach循環:

  For循環,根據數組的小標進行遍歷:

  for(int i=0;i

  System.out.println(array[i]);

  }

  ForEach循環,根據數組的數據類型得到元素,進行遍歷:

  for(Integer data : array){

  System.out.println(data);

  }

  5. 類型轉換:

  A. 數組轉為Set集合:

  使用java api 中Arrays 工具類進行轉換為list,再轉為set:

  Set set = new HashSet(Arrays.asList(array));

  B.數組轉為List集合:

  第一種:遍歷數組,向list中添加元素;

  第二種,使用api java.util.Arrays進行轉換:

  List list = Arrays.asList(array);

  6. java數組常用操作:

  A. int數組轉換為String:

  String result =Arrays.toString(array);

  B.判斷數組是否包含元素:

  使用數組的contains 方法進行判斷,該方法返回值為boolean類型,如果包含該元素,返回值為true,否則返回false;

  如:int array[] = {1,2,2,3,4,5};

  array.contains(1)返回值為true;array.contains(6)返回值為false;

  C.填充數組:

  第一種可通過循環數組的下標(index),維數組的每一個位置進行賦值(array[index] = data);

  第二種可以通過工具類Arrays進行填充,如:Arrays.fill(array,5),將array的每個位置都賦值為5.

  D.復制數組:

  第一種方法是直接指定新的數組:int array2[] = Arrays.copyOf(array,20),將數組array復制到array2中,同時指定array2的數組大小是20;

  第二種方法是根據指定范圍進行賦值,如:

  Int array2[] = Arrays.copyOfRange(array,5,10);將array中第5位到第9位的元素復制到array2中。

  E.比較數組:

  通常使用Arrays.equals()方法進行比較,返回值為boolean類型,如Arrays.equals(array,array2);

  F.數組排序:

  在java中,通常可以通過循環,按照特定的業務邏輯進行排序,如果對元素沒有特殊要求,則可以通過Array.sort()方法進行排序,如:Arrays.sort(array);對數組進行排序;

  Arrays.sort(array,2,6);對數組的第2個元素到第5個元素進行排序。

  三.Java中的數組與內存

  在java中,若聲明數組時直接進行賦值,則為數組分配的內存中直接存入數值;若聲明數組時沒有進行賦值,只說明了數組的大小size,則在數組的內存塊中,有size個狀態為null的內存塊被占用;

  當程序執行結束后,數組的有效長度如果變小,這時需要注意數組原先占用的內存塊不會被jvm處理,如果這種情況比較多,則會發生內存泄漏,此時需要程序員在使用數組后,及時對無效的資源進行釋放,即在數組的該元素為空,array[index] = null.

  四.總結

  在java中,數組是經常使用的技術,通過一個能夠存儲多個相同類型數據元素的容器來實現各種需求,同時在數組內部可以通過位置下標來快速所以數據,增加了java程序的可讀性與健壯性;在使用數組的同時,也需要注意數組容易造成的內存泄漏等問題。

the end

評論(0)