定制公司网站,沙市做网站weisword,山东住房城乡建设厅官方网站,东莞品牌网站设计公司计公司我们在日常开发中#xff0c;经常遇到List转数组#xff0c;数组转List的场景。当我们List转数组时#xff0c;一般使用这种方式#xff1a; String[] queryTaskIdArr queryTaskIds.toArray(new String[0]); 但是toArray方法中的入参有什么需要注意的呢#xff1f; 如下…
我们在日常开发中经常遇到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);