当前位置: 首页 > news >正文

Java 中 List 与数组的转换

Java 中 List 与数组转换的核心 API 总结表

转换方向方法 / 方式说明返回结果类型适用场景
List→数组list.toArray()无参方法,返回包含 List 所有元素的 Object[]Object[]无需指定数组类型的场景(慎用,易出类型错误)
List→数组list.toArray(T[] a)带参方法,返回与参数同类型的数组,参数长度不足时自动创建新数组泛型数组 T[](如 String[]需指定数组类型的场景(推荐使用)
数组→ListArrays.asList(T... a)将数组转换为 List,返回 Arrays 内部类 ArrayList(非 java.util.ArrayListList<T>(固定大小)快速转换且无需修改 List 长度的场景
数组→Listnew ArrayList<>(Arrays.asList(arr))基于 Arrays.asList() 的结果创建可修改的 java.util.ArrayListjava.util.ArrayList<T>需要增删元素的场景
数组→ListStream API(Arrays.stream(arr).collect(...)Java 8+ 方法,支持对象数组直接转换,基本类型数组需配合 boxed()List<T>(如 List<Integer>处理基本类型数组(如 int[])或需要流式操作的场景

核心注意事项

  1. 类型匹配问题

    • List 转数组时,toArray() 无参方法返回 Object[]不可直接强转为具体类型数组(如 String[]),否则抛出 ClassCastException,需用 toArray(T[] a) 并指定类型(推荐 new T[0] 作为参数)。
    • 数组转 List 时,Arrays.asList() 仅支持对象数组(如 String[]),若传入基本类型数组(如 int[]),会将整个数组作为单个元素存入 List(返回 List<int[]>),需用 Stream API 的 boxed() 方法处理(如 int[] 转 List<Integer>)。
  2. 可修改性与数据共享

    • Arrays.asList() 返回的 List 是固定大小的,调用 add()/remove() 会抛出 UnsupportedOperationException;且该 List 与原数组共享数据,修改 List 元素会同步修改原数组(反之亦然)。
    • 若需可修改的 List,需用 new ArrayList<>(Arrays.asList(arr)) 包装,此时 List 与原数组独立,修改互不影响。
http://www.dtcms.com/a/503161.html

相关文章:

  • Flink SQL 与 Kafka 整合详细教程
  • 机票售票网站开发wordpress前台显示友链
  • 电子电气架构 --- 汽车软件架构未来的发展方向
  • JavaScript 表单验证
  • android - JPG图片转换HDR图片,heic格式
  • 【C语言】文件操作(附源码与图片)
  • Vue-Router4使用详解(结合Vue3)
  • 免费做做网站网站建设优化方法 s
  • 图书馆理论与建设网站北京工程建设监理协会网站
  • postman 调用接口设置全局变量
  • Lua协程coroutine库用法
  • 若依字典原理---后端
  • SpringBoot 接入 Prometheus + Grafana
  • 自己有网站怎么做优化实时热榜
  • 基于SpringBoot的“基于数据安全的旅游民宿租赁系统”的设计与实现(源码+数据库+文档+PPT)
  • 海宁公司做网站wordpress编辑器存内容
  • 旅游管理系统|基于SpringBoot和Vue的旅游管理系统(源码+数据库+文档)
  • DAQ系统混合方案与设计模式详解
  • 【Linux系统编程】3. Linux基本指令(下)
  • sql练习-5
  • 做网站审批号必须要wix做网站的建议
  • YAML的Value表示
  • 如何在Gitee和GitHub上部署SSH公钥
  • 成都高新网站建设美图秀秀在线制作
  • Flutter Isolate的使用
  • 从 JDK 8 到 JDK 23:HotSpot 垃圾回收器全景演进与深度剖析
  • 深圳网站建设jm3q网站是公司域名是个人可以吗
  • 【深度学习新浪潮】多模态大模型在图像理解领域的技术进展与实践
  • wordpress 分类菜单高亮外贸seo软件
  • 百度面试题解析:Zookeeper、ArrayList、生产者消费者模型及多线程(二)