列表生成什么类型的列表。Java中的of()
Employee john = new Employee("John", "Brown", 32, 100);
Employee camila = new Employee("Camila", "Smith", 25, 101);
Employee pat = new Employee("Pat", "Hanson", 23, 102);
List<Employee> employeeList = List.of(john, camila, pat);
List.of()
方法生成了什么类型的List
。它是ArrayList
还是LinkedList
# 1 楼答案
名单。of()作为静态工厂方法返回List的基本不可变实现
访问https://4comprehension.com/the-curious-case-of-jdk9-immutable-collections/
# 2 楼答案
多少等于
若您对
List
的具体实现心存疑虑,那个么自己动手吧,这样会更好# 3 楼答案
你可以看看不同的^{} methods in the OpenJDK source code
(这种模式显然是受到相应番石榴类的启发。见Why does Guava's ImmutableList have so many overloaded of() methods?)
非专用于特定数量参数的方法创建^{} 的实例,该实例在内部仅存储一个副本(!)提供了
List
方法的直接实现来访问数组但正如其他人所指出的:确切的类型应该无关紧要强>
唯一重要的一点是,返回的列表还实现了^{} 。虽然在documentation for unmodifiable lists中似乎没有明确指定,但这是我个人所依赖的。他们永远不会把它变成某种链表之类的
# 4 楼答案
都不是。根据^{} 的文档,它返回:
注意,{}和{}实现的是接口{a2}
如果我们运行此代码:
我们得到: