?
我们在日常开发中,经常遇到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);