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

Java 中数组转集合的方法

Java 中数组转集合的方法

1. 对于对象引用数组

1.1. 使用 Arrays.asList() 方法

这是最常用的方法,适用于对象数组(非基本类型数组):

String[] array = {"a", "b", "c"};
List<String> list = Arrays.asList(array); //不可变,同时修改会反映到原数组
List<String> list2 = new ArrayList(list); //可变

注意
• 返回的 List 是固定大小的,不能添加或删除元素
• 对返回列表的修改会反映到原数组

1.2. 使用 Collections.addAll() 方法
String[] array = {"a", "b", "c"};
List<String> list = new ArrayList<>();
Collections.addAll(list, array);

这种方法创建的 List 是可变的。

1.3. 使用 Java 8 Stream API
String[] array = {"a", "b", "c"};
List<String> list = Arrays.stream(array).collect(Collectors.toList());

或者更简洁的写法:

List<String> list = Stream.of(array).collect(Collectors.toList());
1.4. 使用 List.of() (Java 9+)

Java 9 引入了 List.of() 方法:

String[] array = {"a", "b", "c"};
List<String> list = List.of(array);

注意:返回的 List 是不可变的。

2. 对于基本类型数组

基本类型数组需要特殊处理,因为 Arrays.asList() 不能正确处理基本类型数组:

int[] intArray = {1, 2, 3};
List<Integer> list = Arrays.stream(intArray)
                          .boxed()
                          .collect(Collectors.toList());

3. 手动遍历添加

String[] array = {"a", "b", "c"};
List<String> list = new ArrayList<>();
for (String item : array) {
    list.add(item);
}

选择建议

• 如果需要可变集合:使用 new ArrayList<>(Arrays.asList(array))Collections.addAll()
• 如果不需要修改集合:使用 Arrays.asList()List.of()
• 对于基本类型数组:使用 Stream API 的 boxed() 方法

记住,数组和集合之间的转换可能会影响性能,特别是在处理大量数据时。

http://www.dtcms.com/a/102043.html

相关文章:

  • 分布式环境下的主从数据同步
  • SpringBoot事务管理(四)
  • Faster-Whisper —— 为语音识别加速的利器
  • 283. 移动零
  • 【QT】Qt4 QtWebKit使用教程
  • 数据结构与算法-双指针法
  • Java 大视界 -- 基于 Java 的大数据可视化在城市规划决策支持中的交互设计与应用案例(164)
  • 30-超市进销存管理系统
  • RAG 高效检索利器 打造企业 “规章制度智能体”(ollama + deepseek + langchain + MinerU)
  • 力扣经典算法篇-5-多数元素(哈希统计,排序,摩尔投票法)
  • CES Asia 2025:行业话语权的逐鹿高地
  • 如何利用系统的数据分析能力提高利润额?
  • websocket获取客服端真实ip
  • Linux | I.MX6ULL 终结者底板原理图讲解(5)
  • 最新万能场馆预约系统源码 基于ThinkPHP+UniApp 含图文搭建部署教程
  • Python+新版DeepSeek V3轻松开发Agent
  • Unity跨平台输入系统
  • Doris Streamloader安装教程
  • LeetCode 78.子集
  • 字符函数,日期函数笔记
  • QinQ-端口安全
  • 【54】结构体:结构体指针的内存与通信
  • Qt信号槽
  • 3D设计在UI中的应用:2025年的设计新潮流!
  • OpenMCU(五):STM32F103时钟树初始化分析
  • 黑帽SEO之搜索引擎劫持-域名劫持原理分析
  • 银发浪潮下的智能护理革命:全球老龄化社会护理机器人发展研究
  • AI时代新坐标!火石会:应时而生,聚势而为
  • AI推理胜过人脑?思维模型!【34】长线思考思维模型
  • 普冉单片机PY32F002BF,使用adc内部参考电压VREFINT检测。