HOWTO · Java

如何在 Java 中回傳 ArrayList

在本教學中,我們將從 Java 的函數回傳一個 ArrayList。

本頁內容

ArrayList 是 Java 的 java.util 套件中可調整大小的集合。若要回傳一個 ArrayList,請宣告 ArrayList 回傳型別,建立並填入集合,然後用 return 將其回傳。在 Java 中,在類別中宣告的函數稱為方法。當操作使用物件的狀態時,選擇實例方法;當呼叫方應直接使用類別時,選擇靜態方法。如果呼叫方只需要一般的清單操作,方法可以將 List<T> 介面宣告為其回傳型別,同時回傳一個 ArrayList<T> 物件。

在 Java 中從非靜態函數回傳 ArrayList

非靜態方法屬於其類別的一個實例。呼叫方先建構該類別,然後在產生的物件上呼叫該方法。在此範例中,ClassB 建立一個整數清單,Main 在宣告為 List<Integer> 的變數中接收回傳的集合。當呼叫方只需要清單操作時,List 介面是一個有用的變數型別,而方法可以宣告具體的 ArrayList<Integer> 型別。

完整的程式使用一個公開類別,並將 ClassB 巢狀置於其中,因此範例可以儲存為單一 Java 原始檔並編譯。main 方法是呼叫方:它建立 ClassB,透過 m1 呼叫 myNumbers(),並印出回傳的值。

import java.util.ArrayList;
import java.util.List;

public class Main {
  static class ClassB {
    public ArrayList<Integer> myNumbers() {
      ArrayList<Integer> numbers = new ArrayList<>();
      numbers.add(10);
      numbers.add(15);
      numbers.add(30);
      return numbers;
    }
  }

  public static void main(String[] args) {
    ClassB m1 = new ClassB();
    List<Integer> listInMain = m1.myNumbers();
    System.out.println("The List is " + listInMain);
  }
}
The List is [10, 15, 30]

泛型型別 Integer 描述集合所持有的元素。該方法在每次呼叫時建立一個新清單,加入三個數字,並回傳該清單。呼叫方可以讀取、迭代或向回傳的集合加入值。該方法回傳對清單的參照;它不會將集合轉換為陣列。由於呼叫方接收的是同一個物件,透過回傳的參照所做的變更會影響該方法所建立的清單。

在 Java 中從靜態函數回傳 ArrayList

靜態方法屬於類別,而不屬於某個特定物件。使用類別名稱和方法名稱來呼叫它,因此這個版本不會建構 ClassB。當方法的工作不依賴儲存在特定實例上的欄位時,這很有用。其主體仍然以與實例方法相同的方式建立並回傳 ArrayList。

這個獨立程式使用相同的資料,讓您可以專注於呼叫形式。由於該方法宣告為 static,Main 以 ClassB.myNumbers() 的形式呼叫它。回傳值被指派給一個 List<Integer> 變數,並由呼叫方印出。

import java.util.ArrayList;
import java.util.List;

public class Main {
  static class ClassB {
    public static ArrayList<Integer> myNumbers() {
      ArrayList<Integer> numbers = new ArrayList<>();
      numbers.add(10);
      numbers.add(15);
      numbers.add(30);
      return numbers;
    }
  }

  public static void main(String[] args) {
    List<Integer> listInMain = ClassB.myNumbers();
    System.out.println("The List is " + listInMain);
  }
}
The List is [10, 15, 30]

當操作需要物件的狀態時,使用實例方法;當操作屬於類別層級且不需要實例時,使用靜態方法。在任一情況下,請使宣告的回傳型別與值相容,並在呼叫處將結果指派給相容的型別。return 陳述式結束方法,並將已填入的清單交給呼叫方,呼叫方可以使用一般的 List 操作。