/**
@Author : @Singularity
@create @2023/9/27 17:29 */ public class Test {
public static void main(String[] args) { List<String> list = List.of("1", "2", "3"); list.add("4"); System.out.println(list); //输出多少? List<String> collect = Stream.of("1", "2", "3").collect(Collectors.toList()); list.add("4"); System.out.println(collect); //输出多少? List<String> stringList = Arrays.asList("1", "2", "3"); stringList.add("4"); System.out.println(stringList); //输出多少? } }
1
Enzoliu 2023-12-05 10:58:43 +08:00 3
这代码看的头疼,就不能格式化一下发出来吗?
|
2
qczone 2023-12-05 11:00:12 +08:00
1. 异常,因为 List.of 创建的是一个不可变的列表,不能删除增加和修改元素。
2. 应该是 collect.add("4")吧? 输出:[1, 2, 3, 4] 3. 异常,Arrays.asList 创建的是一个可变列表,大小是固定的,可以更改列表中的元素,但不能添加或删除。 |
5
wjx22 2023-12-05 11:09:09 +08:00
```
public static void main(String[] args) { List<String> list = List.of("1", "2", "3"); // list.add("4"); 报错 System.out.println(list); //输出多少? List<String> collect = Stream.of("1", "2", "3").collect(Collectors.toList()); collect.add("4");// 正常 System.out.println(collect); //输出多少? List<String> stringList = Arrays.asList("1", "2", "3"); // stringList.add("4"); 报错 System.out.println(stringList); //输出多少? } ``` |
6
yazinnnn0 2023-12-05 11:12:07 +08:00
有点过于八股了
|
7
Leviathann 2023-12-05 11:14:42 +08:00
add 是陋习
java 在朝着 fp 语言演进,比如 record 、List.of 统统都是 immutable ,pattern matching 也只适用于 immutable 的东西 |
8
991547436 2023-12-05 14:43:37 +08:00
// 使用 List.of 创建不可变列表
List<String> list = List.of("1", "2", "3"); // 尝试添加元素会导致 UnsupportedOperationException // list.add("4"); System.out.println(list); // 使用 ArrayList 创建可变列表 List<String> mutableList = new ArrayList<>(Arrays.asList("1", "2", "3")); mutableList.add("4"); System.out.println(mutableList); // 使用 Stream 创建不可变列表,然后转为可变列表 List<String> collect = Stream.of("1", "2", "3").collect(Collectors.toList()); collect.add("4"); // 这是可行的,因为是可变列表 System.out.println(collect); // 使用 Arrays.asList 创建的列表是固定大小的,不支持添加或删除元素 List<String> stringList = new ArrayList<>(Arrays.asList("1", "2", "3")); stringList.add("4"); System.out.println(stringList); |
9
yajuusenpai 2023-12-05 18:27:09 +08:00
不可变列表是干啥的?
|
10
oneisall8955 2023-12-05 19:01:06 +08:00 via Android
看看源码,最后返回的 List 接口实现类是哪个就行了,很基础的东西
|
11
yolee599 2023-12-06 10:58:36 +08:00
@yajuusenpai #9 就是用来 return 一个只读列表用来遍历的,不允许通过这个列表 add
|