错误案例
代码中需要返回空list时,一般会采用的方式: public List returnEmptyList(){ return new ArrayList(); }
错误分析
public static void main(String[] args) { long t1 = System.currentTimeMillis(); for (int i = 0; i < 100000000; i++) { returnList(); } long t2 = System.currentTimeMillis(); System.out.println(t2 - t1); }
public static List<String> returnList() { // 耗时情况对比 // 1. 4626ms,看源码实现,相当于new ArrayList<String>(10) return new ArrayList<String>(); // 2. 2297ms // return new ArrayList<String>(0); // 3. 14ms // return new Collections.emptyList(); }
正确用法
在一亿次调用的情况下,性能情况一目了然。需要返回空对象时,尽可能使用Collections.emptyList();