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。
➡️