java unmodifiedlist_我们如何在Java 9中创建不可修改的列表?

本文介绍如何使用Java 9中的List.of()方法创建不可变列表。这些列表一旦创建就不能再进行修改,如添加、删除或替换元素。文章还演示了一个创建不可变列表的示例,并展示了尝试修改此类列表时会触发UnsupportedOperationException异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

考虑的列表是不可修改的,如果元素不能被添加,去除,或更换一次的列表的不可修改的实例已经建立从一个列表。静态工厂方法List.of()提供了一种方便的方法来在Java 9中创建不可修改的列表。

通过使用List.of()方法创建的列表的实例具有以下特征。通过工厂方法返回的列表通常是不可变的。这意味着不能从列表中添加,删除或替换元素。调用List上的任何mutator方法都会导致UnsupportedOperationException。

如果List包含的元素是mutable,则可能导致List的内容似乎发生变化。

可以使用不允许空元素的静态工厂方法创建不可变列表。如果我们尝试使用null元素创建,则会抛出NullPointerException。

如果所有元素都可序列化,则不可修改列表可序列化。

列表中元素的顺序与提供的参数或提供的数组中的元素的顺序相同。

语法List.of(E... elements)

示例import java.util.List;

public class UnmodifiedListTest {

public static void main(String[] args) {      List countries = List.of("India", "Australia", "England", "Newzealand");

System.out.println("Countries - " + countries);

countries.add("Srilanka"); // throws UnsupportedOperationException   }

}

输出结果Countries - [India, Australia, England, Newzealand]

Exception in thread "main" java.lang.UnsupportedOperationException

at java.base/java.util.ImmutableCollections.uoe(Unknown Source)

at java.base/java.util.ImmutableCollections$AbstractImmutableList.add(Unknown Source)

at UnmodifiedListTest.main(UnmodifiedListTest.java:7)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值