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

相关推荐
sulikey1 天前
C++的STL:深入理解 C++ 的 std::initializer_list
开发语言·c++·stl·list·initializerlist·c++标准库
埃泽漫笔1 天前
Redis的List数据结构底层实现
redis·list
小白.cpp1 天前
list链表容器
数据结构·链表·list
带刺的坐椅1 天前
LangChain4j 比 SolonAI 强在哪?弱在哪?
java·ai·langchain·solon·mcp
朝新_1 天前
【EE初阶 - 网络原理】传输层协议
java·开发语言·网络·笔记·javaee
oak隔壁找我1 天前
Java 使用技巧与最佳实践
java·后端
oak隔壁找我1 天前
SpringMVC 使用技巧与最佳实践
java·后端
oak隔壁找我1 天前
Spring 框架使用技巧与最佳实践
java·后端
前端架构师-老李1 天前
Java开发—JDK的安装和版本管理(macOS)
java·开发语言·macos
DoveLx1 天前
Spring Boot 事务管理:从基础到高级
java·后端