Collections.emptyList() 和 new ArrayList
时间: 2024-04-25 14:24:52 浏览: 137
Collections.emptyList() 是一个静态方法,返回一个不可修改的空列表。这个方法返回的是一个特殊的空列表对象,该对象不支持添加、删除或修改元素操作。
而 new ArrayList() 是创建一个可调整大小的空列表。这个方法返回的是一个可修改的 ArrayList 对象,你可以向其中添加、删除或修改元素。
所以,如果你需要一个不可修改的空列表,可以使用 Collections.emptyList() 方法。如果你需要一个可修改的空列表,并且需要在之后添加、删除或修改元素,可以使用 new ArrayList() 方法。
相关问题
return Collections.emptyList()是什么意思
`Collections.emptyList()` 是 Java 中的一个静态方法,返回一个空的、不可变的 `List` 实例。
在 Java 中,有时候需要一个空的 `List` 对象,用来表示某些情况下的空列表。然而,每次需要创建一个空的 `List` 实例时,都需要使用 `new ArrayList<>()` 或者类似的方式来创建一个新的实例。这会浪费一些内存,并且会导致一些不必要的 GC(垃圾回收)开销。
为了解决这个问题,Java 标准库提供了一个名为 `emptyList()` 的方法,可以返回一个共享的、不可变的空 `List` 实例。这个实例不可被修改,可以在多个地方共享使用,从而减少了不必要的内存开销。
因此,`return Collections.emptyList()` 的意思就是返回一个空的、不可变的 `List` 实例,用于表示某些情况下的空列表。
List l = Collections.emptyList(); l.add(0f);
在给一个空的不可变列表 `Collections.emptyList()` 添加元素时,会抛出 `UnsupportedOperationException` 异常。因为 `Collections.emptyList()` 返回的是一个不可修改的空列表,它不支持添加、删除或修改操作。
所以,`l.add(0f)` 这行代码会导致异常的抛出。
如果你想创建一个可变的空列表,可以使用 `new ArrayList<>()` 来创建一个空的 ArrayList,然后再添加元素。例如:
```java
List<Float> l = new ArrayList<>();
l.add(0f);
```
阅读全文