list.of是什么作用
时间: 2023-12-02 09:04:52 浏览: 64
`List.of` 是 Java 9 引入的一个静态工厂方法,用于创建一个不可变的 List 集合。它的作用是在创建 List 集合时提供更加简洁和安全的方式,避免了手动创建 List 对象并添加元素的麻烦。
使用 `List.of` 方法可以将元素作为参数传入方法中,方法会返回一个包含这些元素的不可变 List 集合。这意味着你不能向这个集合中添加、删除或修改元素,因为它是不可变的。这也意味着 `List.of` 方法返回的集合是线程安全的,因为它不可变,多个线程同时访问它不会导致并发问题。
例如,以下代码创建了一个包含三个元素的不可变 List 集合:
```
List<String> list = List.of("apple", "banana", "orange");
```
需要注意的是,这个方法只接受非空参数,如果传入了 null 参数会抛出 NullPointerException 异常。此外,由于返回的 List 集合是不可变的,如果需要对集合进行修改,需要使用其他可变的 List 实现类,如 ArrayList 或 LinkedList。
相关问题
Arrays.asList Vs List.of
Arrays.asList和List.of都是用来创建不可变的List的方法,但它们有一些区别。
Arrays.asList方法接受一个数组或可变参数,并返回一个包装了该数组或参数的List。这意味着它返回的List是可变的,但底层数组是不可变的。这就意味着你不能调用修改List大小的方法,比如add、remove等。如果你尝试修改List的大小,会抛出UnsupportedOperationException异常。另外,通过asList方法创建的List是可以修改元素的。
List.of方法是Java 9中引入的新方法,它接受可变参数并返回一个不可变的List。这意味着你不能修改List的大小或者修改元素。如果尝试这样做,会抛出UnsupportedOperationException异常。
除了上述区别外,还有一个重要的区别是对于基本类型数组的处理。Arrays.asList方法可以接受基本类型数组作为参数,并返回一个包装了该基本类型数组的List。而List.of方法只能接受对象类型的参数,不能直接接受基本类型数组。你需要先将基本类型数组转换为对象类型数组,然后才能使用List.of方法。
总之,如果你需要一个不可修改的List,并且不需要对其进行大小或元素的修改,那么推荐使用List.of方法。如果需要一个可修改大小和元素的List,并且不需要对基本类型数组进行处理,那么可以使用Arrays.asList方法。
java9 List.of
Java 9引入了一个新的静态工厂方法List.of(),用于创建不可变的列表对象。该方法接受任意数量的参数,并返回一个包含这些元素的列表对象。例如,以下代码创建一个包含三个元素的不可变列表对象:
```
List<String> names = List.of("Alice", "Bob", "Charlie");
```
这个列表不能被修改,试图使用add()、remove()或set()等方法将会导致UnsupportedOperationException异常。这种不可变性保证了列表对象的线程安全性,因此不需要进行额外的同步操作。此外,由于列表是不可变的,因此它们可以安全地共享并且可以作为常量对象使用。