List转数组,使用toArray时,new String[0] 的数组空间大小怎么传?

发布时间:2024年01月16日

?

我们在日常开发中,经常遇到List转数组,数组转List的场景。当我们List转数组时,一般使用这种方式:

    String[] queryTaskIdArr = queryTaskIds.toArray(new String[0]);

? 但是toArray方法中的入参有什么需要注意的呢??

? 如下:

1.数组空间等于0时,将会动态的创建和集合size相同空间大小的数组,性能是最好的。

2.数组空间大于0但是小于size时,会重新创建大小等于集合size的数组,此时会增加GC的负担。

3.数组空间等于集合的size时,在普通情况下是没问题的,但是在高并发情况下,数组创建完成后,集合的size变大,此时影响跟上面相同。

4.数组空间大于集合的size时,一方面会造成空间浪费,另一方面会在使用数组时产生空指针的异常。因为多出来的空间会存入null。

? 当然我们也可以使用java8中的 stream特性来转换。

    String[] queryTaskIdArr =  queryTaskIds.stream().toArray(String[]::new);

文章来源:https://blog.csdn.net/qq_25533359/article/details/135625987
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。