Java 9 List.of()的使用

打印 上一主题 下一主题

主题 1524|帖子 1524|积分 4572

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
List.of() 是 Java 9 引入的一个静态方法,用于创建不可变的列表(ImmutableList)。这意味着一旦使用 List.of() 创建了列表,你就不能向此中添加、删除或修改元素。这个方法提供了一种方便的方式来创建包含零个或多个元素的不可变列表。
List.of() 方法有几个重载版本,答应你传递零个到十个元素作为参数。如果你必要创建包含超过十个元素的列表,你可以使用 List.of() 方法来组合较小的列表,或者使用其他集合构造方法(如 Arrays.asList() 后跟 Collections.unmodifiableList(),只管这不是一个纯粹的不可变列表,由于它仍旧可以通过原始数组进行修改)。
根本用法

  1. // 创建一个空的不可变列表  
  2. List<String> emptyList = List.of();  
  3.   
  4. // 创建一个包含单个元素的不可变列表  
  5. List<Integer> singleElementList = List.of(1);  
  6.   
  7. // 创建一个包含多个元素的不可变列表  
  8. List<String> multipleElementsList = List.of("apple", "banana", "cherry");
复制代码
注意事项


  • 不可变性:一旦创建,列表的内容就不能更改。实验添加、删除或修改元素将导致 UnsupportedOperationException。
  • 性能:由于不可变性,List.of() 创建的列表在性能上可能不是最优的,特别是在进行大量修改操作时。然而,对于必要不可变集合的场景,这种方法提供了简便性和安全性。
  • 范例安全:由于 List.of() 是一个泛型方法,它可以确保列表的范例安全。
  • 使用场景:List.of() 非常适用于创建常量列表、设置列表或作为方法参数传递的不可变列表。
  • 元素限定:直接通过 List.of() 方法最多可以传递十个元素。如果必要更多元素,请考虑使用其他集合构造方法或组合多个 List.of() 调用。
示例:组合多个 List.of() 调用

  1. // 创建两个较小的不可变列表  
  2. List<Integer> firstHalf = List.of(1, 2, 3, 4);  
  3. List<Integer> secondHalf = List.of(5, 6, 7, 8, 9, 10);  
  4.   
  5. // 使用 Stream 将它们组合成一个较大的不可变列表  
  6. List<Integer> combinedList = Stream.concat(firstHalf.stream(), secondHalf.stream())  
  7.     .collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList));  
  8.   
  9. // 注意:上面的 combinedList 实际上不是纯粹的 List.of() 创建的不可变列表,  
  10. // 但它通过使用 Collections.unmodifiableList() 达到了类似的效果。  
  11.   
  12. // 更简洁但非纯不可变的方法(如果不需要完全的不可变性)  
  13. List<Integer> simplerCombinedList = new ArrayList<>(firstHalf);  
  14. simplerCombinedList.addAll(secondHalf);  
  15. // 注意:simplerCombinedList 是可变的
复制代码
上面的 simplerCombinedList 示例是可变的,而 combinedList 示例则通过 Collections.unmodifiableList() 实验创建一个不可变列表,但它不是由 List.of() 直接创建的。对于完全由 List.of() 创建的不可变列表,你应该直接传递元素给 List.of(),或者如果元素数目超过限定,则考虑使用其他筹划。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

冬雨财经

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表