java新版本:集合工厂方法


java新特性八:集合工厂方法:创建只读集合


package com.atguigu.bean.java;

import org.junit.Test;

import java.util.*;



/**
 * @author liangqichen
 * @create 2021-11-05 14:56
 */
public class Java17Test1 {
    // java新特性八:集合工厂方法:创建只读集合

    // java8的写法
    @Test
    public void test1() {
        List<String> nameList = new ArrayList<>();
        nameList.add("Joe");
        nameList.add("Bob");
        nameList.add("Bill");
        // 返回的nameList是一个只读的集合
        nameList = Collections.unmodifiableList(nameList);

//        nameList.add("Tom");
        System.out.println(nameList);
    }

    @Test
    public void test2() {
        List<String> list = Collections.unmodifiableList(Arrays.asList("a", "b", "c"));
        Set<String> set = Collections.unmodifiableSet(new HashSet<>(Arrays.asList("a",
                "b", "c")));
        // 如下操作不适用于jdk 8 及之前版本,适用于jdk 9
        Map<String, Integer> map = Collections.unmodifiableMap(new HashMap<>() {
            {
                put("a", 1);
                put("b", 2);
                put("c", 3);
            }
        });
        map.forEach((k, v) -> System.out.println(k + ":" + v));

    }

    @Test
    public void test3() {
        // 此时,得到的集合List也是一个只读集合
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
        // 报异常,只读集合
        list.add(6);
    }

    // java新特性八:集合工厂方法:创建只读集合
    public void test4() {
        List<Integer> list1 = List.of(1, 2, 3, 4, 5);

        System.out.println(list1);

        // 不能添加 只读
        Set<Integer> set = Set.of(23, 121, 54, 2, -12, 0);
        System.out.println(set);

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值