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])

相关推荐
shuair20 分钟前
idea 2023.3.7常用插件
java·ide·intellij-idea
小安同学iter1 小时前
使用Maven将Web应用打包并部署到Tomcat服务器运行
java·tomcat·maven
Yvonne9781 小时前
创建三个节点
java·大数据
不会飞的小龙人2 小时前
Kafka消息服务之Java工具类
java·kafka·消息队列·mq
是小崔啊2 小时前
java网络编程02 - HTTP、HTTPS详解
java·网络·http
brevity_souls3 小时前
Spring Boot 内置工具类
java·spring boot
小钊(求职中)3 小时前
Java开发实习面试笔试题(含答案)
java·开发语言·spring boot·spring·面试·tomcat·maven
shix .3 小时前
什么是tomcat
java·tomcat
java技术小馆3 小时前
Deepseek整合SpringAI
java·spring cloud
天荒地老笑话么4 小时前
Mac安装配置Tomcat 8
java·macos·tomcat