返回不可变列表而不是可变列表背后的原因是什么?
为了获得最佳性能,不可变集合存储永不更改的数据集。但是,即使您的数据可能发生变化,您也可以利用性能和节省空间的优势。即使您的数据偶尔发生变化,这些集合也可能比可变集合提供更好的性能。
List#of是静态工厂方法,它提供了创建不可变列表的便捷方法。换句话说,这是创建不可变列表的便捷方法。在 Java-9 之前,这可以通过单独的 API(例如.Collections#unmodifiableList
如果你想获得一个可变列表,你可以ArrayList用这个不可变列表作为参数来实例化一个。
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> mutableList = new ArrayList<>(List.of("A", "B", "C"));
mutableList.add("D");
System.out.println(mutableList);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
[A, B, C, D]
Run Code Online (Sandbox Code Playgroud)