list.toArray(new String[0])详解

java 复制代码
List<String> list = new ArrayList<String>();
list.add("11");
list.add("12");
list.add("13");
list.add("14");
 
 
String[] arr = new String[2];
String[] array = list.toArray(arr);
System.out.println(Arrays.toString(array));

String [] array = list.toArray(arr)

创建了一个长度为4,类型和arr一致(String),并为其引用赋值给数组 。

当预期的换算参数arr的长度比列表中的元素数量少时,arr的值会转换为null,toArray的返回变量另一个跟list中元素个数相同的片段的引用。

跟执行String [] array = list.toArray(new String [1]);的效果是一样的。

java 复制代码
String [] arr =new String [2];
 
String [] array = list.toArray(arr);
 
System.out.println(array); // [11,12,13,14]
 
System.out.println(arr); // 空值 System.out.println(array == arr); //错误

当预期的换算参数arr长度比列表中的元素数量更多或一致时,arr的值会转换列表中的元素值,后面如果有多余的空间,则剩余位置的值替换为null。此时toArray的返回值就是arr的值引用,

即"和arr的值相同"。

java 复制代码
String [] arr =new String [5]; 
String [] array = list.toArray(arr); 
System.out.println(array); // [11,12,13,14,null] 
System.out.println(arr); // [11,12,13,14,null] 
System.out.println(array == arr);//正确

为了节省空间同时获取返回值为String[]的数组,我们使用

String[] array=list.toArray(new String[0])

相关推荐
Seven974 分钟前
【从0到1构建一个ClaudeAgent】并发-后台任务
java
Java面试题总结4 分钟前
Java常见面试题(160道)
java·开发语言
xmaaaa6 分钟前
订单系统到底该怎么建模(四):微服务拆分与聚合边界的终极实践
java·ddd领域驱动
浪客川7 分钟前
【百例RUST - 007】结构体
java·前端·rust
Rsun045517 分钟前
7、Java 装饰器模式从入门到实战
java·开发语言·装饰器模式
黎雁·泠崖8 分钟前
二叉树基础精讲(上):树形结构 · 二叉树概念 · 性质 · 遍历 · 基础操作全解析
java·数据结构·算法
biwenjun9999 分钟前
chatBI构建思路拆解(重点是元数据增强)
java·数据库·人工智能
Rsun045519 分钟前
8、Java 代理模式从入门到实战
java·系统安全·代理模式
人道领域15 分钟前
【黑马点评日记02】Redis解决Tomcat集群Session共享问题
java·前端·后端·架构·tomcat·firefox