面試官:小夥子,給我說一下Java 數組吧

Java 數組

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

1.聲明數組變量

首先必須聲明數組變量,才能在程序中使用數組。程序員

dataType[] arrayRefVar;   // 首選的方法
dataType arrayRefVar[];  // 效果相同,但不是首選方法

建議使用 dataType[] arrayRefVar 的聲明風格聲明數組變量。 dataType arrayRefVar[] 風格是來自 C/C++ 語言 ,在Java中採用是爲了讓 C/C++ 程序員可以快速理解java語言。
例子:面試

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

2.建立數組

Java語言使用new操做符來建立數組數組

arrayRefVar = new dataType[arraySize];

上面的語法語句作了兩件事:ide

使用 dataType[arraySize] 建立了一個數組。函數

把新建立的數組的引用賦值給變量 arrayRefVar。3d

數組變量的聲明,和建立數組能夠用一條語句完成,以下所示:code

dataType[] arrayRefVar = new dataType[arraySize];

另外,你還可使用以下的方式建立數組。blog

dataType[] arrayRefVar = {value0, value1, ..., valuek};

數組的元素是經過索引訪問的。數組索引從 0 開始,因此索引值從 0 到 arrayRefVar.length-1。
下面的語句首先聲明瞭一個數組變量 myList,接着建立了一個包含 10 個 double 類型元素的數組,而且把它的引用賦值給 myList 變量。排序

public class TestArray {
   public static void main(String[] args) {
      // 數組大小
      int size = 10;
      // 定義數組
      double[] myList = new double[size];
      myList[0] = 5.6;
      myList[1] = 4.5;
      myList[2] = 3.3;
      myList[3] = 13.2;
      myList[4] = 4.0;
      myList[5] = 34.33;
      myList[6] = 34.0;
      myList[7] = 45.45;
      myList[8] = 99.993;
      myList[9] = 11123;
      // 計算全部元素的總和
      double total = 0;
      for (int i = 0; i < size; i++) {
         total += myList[i];
      }
      System.out.println("總和爲: " + total);
   }
}
總和爲: 11367.373

下面的圖片描繪了數組 myList。這裏 myList 數組裏有 10 個 double 元素,它的下標從 0 到 9。
面試官:小夥子,給我說一下Java 數組吧

3.處理數組

數組的元素類型和數組的大小都是肯定的,因此當處理數組元素時候,咱們一般使用基本循環或者 For-Each 循環。該實例完整地展現瞭如何建立、初始化和操縱數組:

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

4.For-Each 循環

JDK 1.5 引進了一種新的循環類型,被稱爲 For-Each 循環或者增強型循環,它能在不使用下標的狀況下遍歷數組。

for(type element: array) {
    System.out.println(element);
}

例子:

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

5.數組做爲函數的參數

數組能夠做爲參數傳遞給方法。例子以下:

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});

6.數組做爲函數的返回值

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;
}

7.多維數組

多維數組能夠當作是數組的數組,好比二維數組就是一個特殊的一維數組,其每個元素都是一個一維數組,例如:String str[][] = new String[3][4];

1.多維數組的動態初始化(以二維數組爲例)

直接爲每一維分配空間

type[][] typeName = new type[typeLength1][typeLength2];

type 能夠爲基本數據類型和複合數據類型,arraylength1 和 arraylength2 必須爲正整數,arraylength1 爲行數,arraylength2 爲列數。
2.從最高維開始,分別爲每一維分配空間,例如:

String s[][] = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = new String("Good");
s[0][1] = new String("Luck");
s[1][0] = new String("to");
s[1][1] = new String("you");
s[1][2] = new String("!");

s[0]=new String[2] 和 s[1]=new String[3] 是爲最高維分配引用空間,也就是爲最高維限制其能保存數據的最長的長度,而後再爲其每一個數組元素單獨分配空間 s0=new String(「Good」) 等操做。

多維數組的引用(以二維數組爲例)

對二維數組中的每一個元素,引用方式爲 arrayName[index1][index2]

8.Arrays 類

java.util.Arrays 類能方便地操做數組,它提供的全部方法都是靜態的。
具備如下功能:

給數組賦值:經過 fill 方法。

對數組排序:經過 sort 方法,按升序。

比較數組:經過 equals 方法比較數組中元素值是否相等。

查找數組元素:經過 binarySearch 方法能對排序好的數組進行二分查找法操做。

面試官:小夥子,給我說一下Java 數組吧

看完有什麼不懂的歡迎在下方留言評論

相關文章
相關標籤/搜索