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

相关推荐
抹除不掉的轻狂丶2 分钟前
Java 日志框架完整指南:发展历史、核心组成与最佳实践
java·开发语言·python
林涧泣13 分钟前
使用Java输出HelloWorld
java·开发语言
叫致寒吧24 分钟前
Dockerfile
java·spring cloud·eureka
鸽鸽程序猿31 分钟前
【刷题册】三
java·刷题
ruleslol33 分钟前
java中调用uri请求的几种常见的方法
java
资生算法程序员_畅想家_剑魔34 分钟前
Java常见技术分享-10-装饰器模式
java·开发语言·装饰器模式
ss27335 分钟前
ThreadPoolExecutor七大核心参数:从源码看线程池的设计
java·数据库·算法
林shir37 分钟前
Java基础1.4-运算符
java·开发语言
ldj202044 分钟前
springboot logback 设置日志级别
java·spring boot·logback