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 操作。