相关疑难解决方法(0)

List.of和Arrays.asList有什么区别?

Java 9为列表引入了一种新的工厂方法List.of:

List<String> strings = List.of("first", "second");
Run Code Online (Sandbox Code Playgroud)

前一个和新选项有什么区别?也就是说,这有什么区别:

Arrays.asList(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

还有这个:

List.of(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

java list java-9

95
推荐指数
5
解决办法
2万
查看次数

List.of()或Collections.emptyList()

作为List.of(...)或Collections.unmodifiableList()的一个特例- 指向空的不可变列表的首选Java 9方式是什么?

继续写

Collections.emptyList();
Run Code Online (Sandbox Code Playgroud)

或切换到

List.of();
Run Code Online (Sandbox Code Playgroud)

java collections java-9

17
推荐指数
3
解决办法
2948
查看次数

Java 9集合工厂的用法

List.of()或Collections.emptyList()List.of(...)或Collections.unmodifiableList()中给出的注释和答案的上下文中, 我提出了两条以下经验法则(也适用于SetMap工厂相应).

  1. 不要替换所有出现的事件

继续使用Collections.emptyList()以提高可读性,例如初始化懒惰的字段成员,例如:

class Bean {
  private List<Bean> beans = Collection.emptyList();
  public List<Bean> getBeans() {
    if (beans == Collections.EMPTY_LIST) { beans = new ArrayList<>(); }
    return beans;
  }
}
Run Code Online (Sandbox Code Playgroud)
  1. 使用新工厂作为方法参数构建器

在使用参数List.of()调用可执行文件时,使用新工厂和变体作为快速且较少类型的版本List.以下是我目前的替代模式:

Collections.emptyList()       --> List.of()
Collections.singletonList(a)  --> List.of(a)
Arrays.asList(a, ..., z)      --> List.of(a, ..., z)
Run Code Online (Sandbox Code Playgroud)

在虚构的用法中Collections.indexOfSubList,以下几行

Collections.indexOfSubList(Arrays.asList(1, 2, 3), Collections.emptyList());
Collections.indexOfSubList(Arrays.asList(1, 2, 3), Collections.singletonList(1));
Collections.indexOfSubList(Arrays.asList(1, 2, 3), Arrays.asList(1));
Collections.indexOfSubList(Arrays.asList(1, 2, 3), Arrays.asList(2, 3));
Collections.indexOfSubList(Arrays.asList(1, …
Run Code Online (Sandbox Code Playgroud)

java collections java-9

10
推荐指数
2
解决办法
581
查看次数

List#copyOf,Set#copyOf和Map#copyOf与传统方法的区别是什么?

Java 10的发布带来了新的静态工厂方法,特别是:

看到这些方法允许我们将Collections 复制到不同的Collection实现中,它们如何与现有方法进行比较和对比?

java collections factory-method java-10

4
推荐指数
1
解决办法
556
查看次数

Java 10中的Collectors.toUnmodifiableList vs Collections.unmodifiableList

根据doc,该方法Collections.unmodifiableList返回指定列表的不可修改视图.返回的列表是否真的无法修改?不可修改的观点是什么意思?

根据doc,该方法Collectors.toUnmodifiableList返回一个Collector,它将输入元素累积到遇到顺序的不可修改的List中.这里返回的列表真的无法修改吗?

注意:通过可修改,我的意思是可以使用set操作修改视图.我想了解它们之间的区别以及它们之间的关系?

java java-8 java-10

3
推荐指数
1
解决办法
465
查看次数

标签 统计

java ×5

collections ×3

java-9 ×3

java-10 ×2

factory-method ×1

java-8 ×1

list ×1