List.of 和 A​​rrays.asList 有什么区别?

2023-12-26

Java 9 引入了新的列表工厂方法,List.of https://docs.oracle.com/javase/9/docs/api/java/util/List.html#of-E...-:

List<String> strings = List.of("first", "second");

以前的选项和新的选项有什么区别?也就是说,这有什么区别:

Arrays.asList(1, 2, 3);

和这个:

List.of(1, 2, 3);

Arrays.asList返回一个可变列表,而返回的列表List.of is 不可变的 https://docs.oracle.com/javase/9/docs/api/java/util/List.html#immutable:

List<Integer> list = Arrays.asList(1, 2, null);
list.set(1, 10); // OK

List<Integer> list = List.of(1, 2, 3);
list.set(1, 10); // Fails with UnsupportedOperationException

Arrays.asList允许空元素,同时List.of没有:

List<Integer> list = Arrays.asList(1, 2, null); // OK
List<Integer> list = List.of(1, 2, null); // Fails with NullPointerException

contains对于 null 的行为有所不同:

List<Integer> list = Arrays.asList(1, 2, 3);
list.contains(null); // Returns false

List<Integer> list = List.of(1, 2, 3);
list.contains(null); // Fails with NullPointerException

Arrays.asList返回所传递数组的视图,因此对数组的更改也将反映在列表中。为了List.of这不是真的:

Integer[] array = {1,2,3};
List<Integer> list = Arrays.asList(array);
array[1] = 10;
System.out.println(list); // Prints [1, 10, 3]

Integer[] array = {1,2,3};
List<Integer> list = List.of(array);
array[1] = 10;
System.out.println(list); // Prints [1, 2, 3]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

List.of 和 A​​rrays.asList 有什么区别? 的相关文章

  • 获取文件的锁

    我想在对特定文件开始 threo read 时获取文件上的锁定 以便其他应用程序无法读取已锁定的文件并希望在线程终止时释放锁定文件 您可以获得一个FileLock https docs oracle com javase 8 docs ap
  • Oracle Java 教程 - 回答问题时可能出现错误

    我是 Java 新手 正在阅读 Oracle 教程 每个部分之后都有问题和答案 我不明白一个答案中的一句话 见下面的粗体线 来源是https docs oracle com javase tutorial java javaOO QandE
  • Base36 编码字符串?

    我一直在网上查找 但找不到解决此问题的方法 在 Python Ruby 或 Java 中 如何对以下字符串进行 Base 36 编码 nOrG9Eh0uyeilM8Nnu5pTywj3935kW 5 Ruby 以 36 为基数 s unpa
  • (Java) App Engine 中的静态文件无法访问

    The 示例文档 http code google com appengine docs java gettingstarted staticfiles html表示您只需将文件放在 war 或子目录 中 并且应该可以从主机访问它们 只要它
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • 如何在java Spring Boot中实现通用服务类?

    我有许多具有重复代码的服务 我想知道如何实现通用服务 以便我的所有服务都可以扩展它 服务接口示例 重复代码 Service public interface IUserService List
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • org/codehaus/plexus/archiver/jar/JarArchiver(不支持的major.minor版本49.0)-Maven构建错误

    下午大家 我在尝试构建项目时收到上述错误 我很确定这与使用 Java 1 6 编译的 Maven 最新更新有关 而我们尝试构建的项目是 1 4 项目 在此之前的插件工作没有问题 因此我将以下内容添加到 POM xml 文件中以尝试强制使用现
  • 从直方图计算平均值和百分位数?

    我编写了一个计时器 可以测量任何多线程应用程序中特定代码的性能 在下面的计时器中 它还会在地图中填充花费了 x 毫秒的调用次数 我将使用这张图作为我的直方图的一部分来进行进一步的分析 例如调用花费了这么多毫秒的百分比等等 public st
  • 当 minifyEnabled 为 true 时 Android 应用程序崩溃

    我正在使用多模块应用程序 并且该应用程序崩溃时minifyEnabled true in the installed模块的build gradle 以下是从游戏控制台检索到的反混淆堆栈跟踪 FATAL EXCEPTION Controlle
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • Play.application() 的替代方案是什么

    我是 Play 框架的新手 我想读取conf文件夹中的一个文件 所以我用了Play application classloader getResources Data json nextElement getFile 但我知道 play P
  • 如何从 Ant 启动聚合 jetty-server JAR?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • 如何在Java中对对象数组进行字段级别排序以进行等级比较?

    In Java Class StudentProgress String Name String Grade CTOR goes here main class main method StudentProgress arrayofObje
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • 如何从namedtuple实例列表创建pandas DataFrame(带有索引或多索引)?

    简单的例子 from collections import namedtuple import pandas Price namedtuple Price ticker date price a Price GE 2010 01 01 30
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有

随机推荐

  • JavaScript:在 HTML 中转义双引号

    我怎样才能防止images i title如果下面的 HTML 包含双引号 会破坏 HTML 吗 for i 0 i lt images length 1 i gallery img width 250 height 250 src tit
  • 从向量获取向量矩阵

    我有一个向量x 1 3 5 6 7 我想产生一个矩阵y其中行 y k x k k 2 所以在这种情况下得到的矩阵将是 1 3 5 3 5 6 5 6 7 我怎样才能实现这个目标without使用循环 有没有一种巧妙的方法可以通过索引来做到这
  • 如何解析 Metro (C++/CX) 应用程序中的日期?

    我有一个 C CX 应用程序正在处理文件中的一些数据 它有一个字符串代表用于保存日期的区域性 并且它有一些日期 我需要将它们从字符串转换为 Platform DateTime 我听说过Windows 全球化 日期时间格式化 http msd
  • 合并 json 的 javascript 数组

    我将表单中的信息连续收集到数组中 如下所示 list name John email email protected cdn cgi l email protection country Canada color blue identifi
  • django admin inline没有外键关系

    我有一个像这样的模型 class Category models Model name models CharField max length 100 description models TextField thumbnail model
  • 命令超时 | Discord.js

    目前我有这个 const Discord require discord js const PREFIX const token my token var bot new Discord Client bot on ready gt bot
  • 如何在 Spring Boot 应用程序中设置 GOOGLE_APPLICATION_CREDENTIALS

    我正在尝试在java中使用谷歌视觉库 这些步骤指定我需要设置我的身份验证凭据才能开始使用this https developers google com identity protocols application default cred
  • 使条带“数据量”使用带有变量的动态

    我需要让我的脚本签出才能使用我的var priceCheckout priceCheckout 结帐价格值 我尝试将 data amount 2000 替换为data amount priceCheckout 没有任何运气 所以要说清楚 它
  • Rails:重定向到特定域...但不覆盖 SSL?

    因此 我正在将 Rails 3 0 9 应用程序从一个域移动到另一个域 Heroku 建议在应用程序控制器中使用 before filter 以确保每个人最终都进入新域 如下所示 before filter ensure domain if
  • 如何在单个 mySQL 条目中找到多种可能模式之一?更多内容

    我很难总结我的问题 基本上 有一个名为 文件 的表 文件包含一个名为 等级 的条目 它用于识别文件可能有用的特定年级 因为文件对于 gt 1 年级有用 所以我存储这样的内容 如果只适合三年级 等级 3 如果第三 第四和第五名有好处的话 年级
  • 是否可以在谷歌应用程序引擎中启动计时器?

    例如 每 30 秒检查一次状态或定期轮询 Web 服务 应用引擎定时服务 https developers google com appengine docs python config cron允许您配置定期计划的任务 这些任务在定义的时
  • RavenDb 查询单元测试

    有没有一种明智的方法来存根 模拟调用的结果IDocumentSession Query 我有一个命令 我想验证是否在对象上调用了方法 即正在测试的 单元 是命令而不是命令编排的对象 我无法将 Mock 对象 通过 RhinoMocks 保存
  • MYSQL中LIKE和=的区别?

    有什么区别 SELECT foo FROM bar WHERE foobar foo AND SELECT foo FROM bar WHERE foobar LIKE foo 在SQL中进行精确匹配 LIKE进行通配符匹配 使用 作为多字
  • Symfony 服务器:运行错误

    当我尝试运行时出现此错误myproject symfony2 项目 我认为出现错误是因为在该端口上8000 I have ajenti服务器运行nginx Server running on http 127 0 0 1 8000 Quit
  • 使用 JavaScript 解析来自磁条阅读器的信用卡数据

    好的 我有一个 html 表单 显示如下 span span Indicates required field div class fields Swiped Information div
  • 类型定义,#定义

    谁能解释一下两者之间的区别 define int char and typedef int char 没有区别 因为两者都是非法的 int 不是宏的有效标识符 即使您在其中添加空格 也不是int 因为它是一个关键字并且被保留 即使您将其更改
  • @RequestParam 和 @RequestMapping 之间的区别

    Line1 public ModelAndView viewCustomerDetails RequestParam custId Integer customerId RequestParam categoryName String ca
  • 启用 VCL 样式的应用程序和显示缩放时 Windows 标题栏中的视觉错误

    目前我正在测试启用 VCL 样式的应用程序的各个方面 我注意到 Windows 缩放比例高于默认的 96 dpi 100 VCL 表单的图标和标题栏文本太大 并且两者都靠得很近 请参阅随附的屏幕截图 对于 200 或 250 等更高的缩放
  • 如何用 Java 发送电子邮件?

    我需要从 Tomcat 中运行的 servlet 发送电子邮件 我总是会向同一收件人发送相同主题但内容不同的邮件 用 Java 发送电子邮件的简单方法是什么 Related 如何使用 GMail 从 Java 应用程序发送电子邮件 http
  • List.of 和 A​​rrays.asList 有什么区别?

    Java 9 引入了新的列表工厂方法 List of https docs oracle com javase 9 docs api java util List html of E List