Stream Collectors - toUnmodifiableList、toUnmodifiableSet

news/2025/2/24 17:01:27

public static <T> Collector<T,​?,​List<T>> toUnmodifiableList()

public static <T> Collector<T,​?,​Set<T>> toUnmodifiableSet()

根据字面上的意思就是返回的ArrayList或HashSet结果是不可更改的。以上两个方法以toUnmodifiableList为例进行说明,看例子:

void test44() {

        Set<Integer> list = Set.of(2,5,8,9,4,20,11,43,55);

        List<Integer> ls = list.stream().collect(Collectors.toList());

        ls.add(10);

        ls.stream().forEach(System.out::print);

        System.out.println("\t");

        List<Integer> ls2 = list.stream().collect(Collectors.toUnmodifiableList());

        ls2.add(10);

        ls2.stream().forEach(System.out::print);

    }

执行结果:

420255119843510

Exception in thread "main" java.lang.UnsupportedOperationException

如果把ls2.add(10);这行代码注释掉,执行结果:

119843542025510

1198435420255


http://www.niftyadmin.cn/n/928489.html

相关文章

[翻译]Effective Java in Kotlin:2. 遇到多个构造器参数时,考虑用构建者

原文&#xff1a;Effective Java in Kotlin, item 2: Consider a builder when faced with many constructor parameters Reminder from the book 在Java中&#xff0c;通常的解决可选构造参数的方式是使用可伸缩构造器&#xff08;telescoping constructor&#xff09;。当使用…

glob - 形成路径名称

描述 (DESCRIPTION) 很久以前 在 UNIX V6 版 中 有一个 程序 /etc/glob 用来 展开 通配符模板. 不久以后 它 成为 shell 内建功能. 现在 人们 开发了 类似的 库函数 glob(3), 让 用户程序 实现 同样的 功能. 此 规则 遵循 (POSIX 1003.2, 3.13). 通配符匹配 (WILDCARD MATCHING…

Stream Collectors - toMap

public static <T,​K,​U> Collector<T,​?,​Map<K,​U>> toMap​(Function<? super T,​? extends K> keyMapper, Function<? super T,​? extends U> valueMapper) 简单理解就是把元素放到map中保存&#xff0c;map中的key和value都是…

学习笔记之三张图读懂机器学习 :基本概念、五大流派与九种常见算法 - 超级数学建模...

三张图读懂机器学习 &#xff1a;基本概念、五大流派与九种常见算法 - 超级数学建模 https://mp.weixin.qq.com/s/qiQz1FpP0FHzo-cXKTBb8w 机器学习正在进步&#xff0c;我们似乎正在不断接近我们心中的人工智能目标。语音识别、图像检测、机器翻译、风格迁移等技术已经在我们的…

C#中多线程中变量研究

今天在知乎上看到一个问题【为什么在同一进程中创建不同线程&#xff0c;但线程各自的变量无法在线程间互相访问&#xff1f;】。在多线程中&#xff0c;每个线程都是独立运行的&#xff0c;不同的线程有可能是同一段代码&#xff0c;但不会是同一作用域&#xff0c;所以不会共…

stream.allMatch

boolean allMatch​(Predicate<? super T> predicate) 字面意思就是全部匹配。作用就是定义一个函数参数对集合中全部元素进行计算&#xff0c;如果返回结果都是true那最终结果为true&#xff08;还有一种情况就是集合元素为空也返回true&#xff09;&#xff0c;如果有…

Java消息队列三道面试题详解!

面试题为什么使用消息队列&#xff1f;消息队列有什么优点和缺点&#xff1f;Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别&#xff0c;以及适合哪些场景&#xff1f;面试官心理分析其实面试官主要是想看看&#xff1a;第一&#xff0c;你知不知道你们系统里为什么要用消…

Tensorflow小技巧:TF_CPP_MIN_LOG_LEVEL

#pythonimport os import tensorflow as tf os.environ[TF_CPP_MIN_LOG_LEVEL] 2 # or any {0, 1, 3} #C: (In Terminal)export TF_CPP_MIN_LOG_LEVEL2 TF_CPP_MIN_LOG_LEVEL默认值为 0 (显示所有logs)&#xff0c;设置为 1 隐藏 INFO logs, 2 额外隐藏WARNING logs, 设置为3…