List.of 和 Arrays.asList 的区别

Java中的List和Set接口提供了of方法来创建不可变集合,如`List.of(hh,ss)`和`Set.of(hh,ss)`。Map接口则有ofEntries方法结合entry创建不可变Map,如`Map<String,Integer>scores=Map.ofEntries(entry(tom,1),entry(jack,2),entry(xiaoming,3))`。如果需要可修改的集合,可以将不可变集合传入构造器,如`newArrayList<>(List.of(ss,hh))`。

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

  • 对于 List 和 Set 接口,有一个参数个数可变的 of 方法。
    例如:
List<String> names=List.of("hh","ss");
Set<String> names=Set.of("hh","ss");
  • 对于 Map 接口,有一个静态方法 ofEntries ,能接受任意多个 Map.Entry<K,V> 对象,可以用静态方法 entry 创建这些对象。例如:
Map<String,Integer> scores= ofEntries(
entry("tom",1),
entry("jack",2),
entry("xiaoming",3));

注意⚠️:

of 和 ofEntries 这些集合对象是不可修改的,如果试图修改它们的内容,会导致一个 UnsupportedOperation-Exception 异常

如果需要一个可更改的集合,可以把这个不可修改的集合传递到构造器。例如:

var names=new ArrayList<>(List.of("ss","hh"));

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值