java中的List.copyOf方法

 

List.copyOf 是 Java 10 中引入的一个方法,它用于创建一个不可变的列表,该列表包含指定列表中的所有元素。它返回一个新的 List 对象,该对象是不可修改的,即不能添加、删除或修改其中的元素。

使用 List.copyOf 方法可以方便地创建一个不可变的列表,避免对原始列表进行修改。例如:

List<Integer> numbers = List.of(1, 2, 3, 4, 5);
List<Integer> immutableList = List.copyOf(numbers);

// 以下操作会抛出 UnsupportedOperationException 异常
immutableList.add(6);
immutableList.remove(1);
immutableList.set(0, 10);

在上面的例子中,我们首先创建了一个包含整数的列表 numbers,然后使用 List.copyOf 方法创建了一个不可变的列表 immutableList。由于 immutableList 是不可修改的,所以在尝试对其进行添加、删除或修改操作时,会抛出 UnsupportedOperationException 异常。

需要注意的是,List.copyOf 方法返回的是一个不可修改的列表,但并不保证列表中的元素也是不可修改的。如果原始列表中包含可修改的对象,那么在不可变列表中仍然可以修改这些对象。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Arrays.copyOf()是在JDK 6新增的一个方法,用于复制指定的数组内容以达到扩容的目的。该方法对不同的基本数据类型都有对应的重载方法。\[1\]它内部调用了System.arraycopy()方法来实现数组的复制。\[2\]Arrays.copyOf()方法的使用非常简单,只需要传入原始数组和新数组的长度即可。如果新数组的长度大于原数组的长度,超过的部分会用null进行填充;如果新数组的长度小于原数组的长度,只会拷贝前几个数据。\[3\]这个方法在一些场景非常有用,比如ArrayList底层代码的动态扩容实现以及System类的arraycopy()方法的基本定义。 #### 引用[.reference_title] - *1* *2* [Arrays.copyOf() 方法理解](https://blog.csdn.net/qq_31459039/article/details/90744483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [详解Java的Arrays类的copyOf()方法](https://blog.csdn.net/qq_37840807/article/details/97387650)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值