Java中列表List的可变性和不变性

💡 原文中文,约4400字,阅读约需11分钟。
📝

内容提要

Java代码示例了List的可变和不可变两种实现方式,包括ArrayList、LinkedList、CopyOnWriteArrayList、Arrays.asList()、Collections.emptyList()、Collections.singletonList()、Collections.unmodifiableList()、List.of()、List.copyOf()、Stream.toList()和Stream.collect(Collectors.toUnmodifiableList())。每种实现方式都有其特点和适用场景。

🎯

关键要点

  • Java代码示例了List的可变和不可变两种实现方式。
  • 可变实现包括ArrayList、LinkedList和CopyOnWriteArrayList。
  • Arrays.asList()返回一个可变但不可增长的List实现。
  • Collections.synchronizedList返回一个有条件线程安全的List实例。
  • Stream.collect(Collectors.toList())返回一个可变的List。
  • 不可变实现包括Collections.emptyList()、Collections.singletonList()、Collections.unmodifiableList()、List.of()、List.copyOf()、Stream.toList()和Stream.collect(Collectors.toUnmodifiableList())。
  • Collections.emptyList()返回不可变的空List。
  • Collections.singletonList()返回不可变的单例List。
  • Collections.unmodifiableList()返回List的不可修改视图。
  • List.of()返回不可变的List。
  • List.copyOf()复制另一个List的内容并返回不可变的List。
  • Stream.toList()返回不可变的List。
  • Stream.collect(Collectors.toUnmodifiableList())返回不可修改的List。
➡️

继续阅读