首頁 > Java > java教程 > 【java教學】Java 陣列

【java教學】Java 陣列

黄舟
發布: 2016-12-26 13:22:09
原創
1357 人瀏覽過

Java 陣列

數組對於每個編輯應語言來說都是重要的資料結構之一,當然不同語言對陣列的實作及處理也不盡相同。

Java語言中提供的陣列是用來儲存固定大小的同類型元素。

你可以宣告一個數組變量,如numbers[100]來取代直接宣告100個獨立變數number0,number1,....,number99。

本教學將為大家介紹Java陣列的宣告、建立和初始化,並給出其對應的程式碼。

宣告數組變數

首先必須宣告數組變量,才能在程式中使用數組。以下是聲明數組變數的語法:

dataType[] arrayRefVar;   // 首选的方法

或

dataType arrayRefVar[];  // 效果相同,但不是首选方法
登入後複製

注意: 建議使用dataType[] arrayRefVar 的聲明風格聲明數組變數。 dataType arrayRefVar[] 風格是來自 C/C++ 語言 ,在Java中採用是為了讓 C/C++ 程式園快速理解java語言。

實例

下面是這兩種語法的程式碼範例:

double[] myList;         // 首选的方法

或

double myList[];         //  效果相同,但不是首选方法
登入後複製

建立數組

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。這裡myList陣列裡有10個double元素,它的下標從0到9。

【java教學】Java 陣列

處理數組

數組的元素類型和數組的大小都是確定的,所以當處理數組元素時候,我們通常使用基本循環或foreach循環。

範例

這個實例完整地展示如何建立、初始化和操縱數組:

public class TestArray {

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

      // 打印所有数组元素
      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 += myList[i];
      }
      System.out.println("Total is " + total);
      // 查找最大元素
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);
   }
}
登入後複製

以上實例編譯運行結果如下:

1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5
登入後複製

foreach循環

JDK 1.5 引進了一個新的循環類型,被稱為新的循環類型,被稱為foreach循環或加強型循環,它能在不使用下標的情況下遍歷數組。

範例

此實例用來顯示數組myList中的所有元素:

public class TestArray {

   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.print(array[i] + " ");
  }
}
登入後複製

下面例子调用printArray方法打印出 3,1,2,6,4和2:

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;
}
登入後複製

以上实例中result数组作为函数的返回值。


Arrays 类

java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:

给数组赋值:通过fill方法。

对数组排序:通过sort方法,按升序。

比较数组:通过equals方法比较数组中元素值是否相等。

查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

具体说明请查看下表:

序号

方法和说明

1    public static int binarySearch(Object[] a, Object key)
用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。    

2    public static boolean equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。    

3    public static void fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。    

4    public static void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。    

 以上就是【java教程】Java 数组的内容,更多相关内容请关注PHP中文网(www.php.cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板