设置不可变集合 java_如何在Java中创建不可变集合

每当需要创建在初始化后无法更改的对象时,都可以定义不可变对象。没有创建不可变对象的特定规则,其思想是在初始化后限制对类字段的访问。

Set是集合框架中的接口,不允许重复的值。

创建不可变集时,您需要牢记以下几点:我们不应该能够从中添加或删除元素。

我们应该不能将空值添加到不可变的集合中。

一旦创建了一个不可变的集合,就不能向其添加或删除对象,但是可以修改存储在其中的对象。

使用Java9的Of()方法

Java9的of()方法接受元素列表,创建并返回给定元素的不可变集合。使用此方法,您可以使用Java创建不可变的集合。import java.util.Set;

public class ImmutableSet {

public static void main(String args[]) {

Set set = Set.of(1458, 5548, 4587);

System.out.println(set);

}

}

使用unmodifiableSet()方法

该方法接受收集对象作为参数,并返回其不可修改的即不变的形式。

通过传递所需的对象并获取其不可变形式来调用此方法。

示例

在以下Java程序中,我们创建了一个HashSet对象,并使用unmodifiableSet()方法将其转换为不可变对象,并尝试向其添加元素。

由于我们将其设置为不可变的,因此将生成运行时异常。import java.util.Collections;

import java.util.HashSet;

import java.util.Set;

public class ImmutableSet {

public static void main(String args[]) {

Set hashSet = new HashSet();

//填充HashSet

hashSet.add(1124);

hashSet.add(3654);

hashSet.add(7854);

hashSet.add(9945);

System.out.println(hashSet);

//将 set 对象转换为不可变对象

Set immutable = Collections.unmodifiableSet(hashSet);

immutable.add(4466);

}

}

输出结果[1124, 3654, 9945, 7854]

Exception in thread "main" java.lang.UnsupportedOperationException

at java.util.Collections$UnmodifiableCollection.add(Unknown Source)

at MyPackage.ImmutableSet.main(ImmutableSet.java:19)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值