1. 程式人生 > 實用技巧 >《將部落格搬至CSDN》

《將部落格搬至CSDN》

------------恢復內容開始------------

  我們都知道判斷list為空可以通過兩種途徑:

  一、

1 List list = new ArrayList(2);
2 System.out.println(list.size());//當list.size()==0時,說明該list為空
 
1 List list = new ArrayList(2);
2 System.out.println(list.isEmpty());//當list.isEmpty為true時,說明該list為空
這樣的文章在網上一搜一大堆,並且明確指出兩種方式完全一樣,真的是這樣的嗎?
  在使用sonar進行程式碼掃描後,sonar給出這樣的說法:
Using Collection.size() to test for emptiness works, but using Collection.isEmpty() makes the code more readable and can be more performant. 
The time complexity of any isEmpty() method implementation should be O(1) whereas some implementations of size() can be O(n).
可以概括為兩點:
  第一:從程式碼的可讀性來說,isEmpty()方法的使用使得程式碼更具可讀性;
  第二:從時間複雜度來說,在任何時候isEmpty()方法實現的時間複雜度應為O(1),而size()的某些實現則可以為O(n)。
我們往往會忽略這些小的細節,然而,為了讓我們的程式碼更加的強壯,寫出更優的程式碼就是我們不斷追求的動力。共勉!!!

------------恢復內容結束------------