java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java9 List.of()的使用

Java 9中List.of()的使用示例及注意事项

作者:Anpunph.

Java 9引入了一个新的静态工厂方法List.of(),用于创建不可变的列表对象,这篇文章主要介绍了Java 9中List.of()的使用示例及注意事项的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

List.of() 是 Java 9 引入的一个静态方法,用于创建不可变的列表(ImmutableList)。这意味着一旦使用 List.of() 创建了列表,你就不能向其中添加、删除或修改元素。这个方法提供了一种方便的方式来创建包含零个或多个元素的不可变列表。

List.of() 方法有几个重载版本,允许你传递零个到十个元素作为参数。如果你需要创建包含超过十个元素的列表,你可以使用 List.of() 方法来组合较小的列表,或者使用其他集合构造方法(如 Arrays.asList() 后跟 Collections.unmodifiableList(),尽管这不是一个纯粹的不可变列表,因为它仍然可以通过原始数组进行修改)。

基本用法

// 创建一个空的不可变列表  
List<String> emptyList = List.of();  
  
// 创建一个包含单个元素的不可变列表  
List<Integer> singleElementList = List.of(1);  
  
// 创建一个包含多个元素的不可变列表  
List<String> multipleElementsList = List.of("apple", "banana", "cherry");

注意事项

示例:组合多个 List.of() 调用

// 创建两个较小的不可变列表  
List<Integer> firstHalf = List.of(1, 2, 3, 4);  
List<Integer> secondHalf = List.of(5, 6, 7, 8, 9, 10);  
  
// 使用 Stream 将它们组合成一个较大的不可变列表  
List<Integer> combinedList = Stream.concat(firstHalf.stream(), secondHalf.stream())  
    .collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList));  
  
// 注意:上面的 combinedList 实际上不是纯粹的 List.of() 创建的不可变列表,  
// 但它通过使用 Collections.unmodifiableList() 达到了类似的效果。  
  
// 更简洁但非纯不可变的方法(如果不需要完全的不可变性)  
List<Integer> simplerCombinedList = new ArrayList<>(firstHalf);  
simplerCombinedList.addAll(secondHalf);  
// 注意:simplerCombinedList 是可变的

上面的 simplerCombinedList 示例是可变的,而 combinedList 示例则通过 Collections.unmodifiableList() 尝试创建一个不可变列表,但它不是由 List.of() 直接创建的。对于完全由 List.of() 创建的不可变列表,你应该直接传递元素给 List.of(),或者如果元素数量超过限制,则考虑使用其他设计。

附:List.of() 和 Array.asList() 的区别

List.of()和 Array.asList()都是 Java 中用于创建列表的两种不同方法,它们都可以用来创建列表。但它们也有一些显著的区别,下面笔者将讲解下它们的主要区别

1. 不可变性和可变性

List.of()

Arrays.asList()

2. 性能对比

List.of()

Arrays.asList()

3. 适用场景

List.of()

Arrays.asList()

总结

到此这篇关于Java 9中List.of()的使用示例及注意事项的文章就介绍到这了,更多相关Java9 List.of()的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文