在下面的代碼片段中,檢查dic.isEmpty()是否會導致任何的性能改進?在輸入while(Iterator.hasNext())循環之前Map.isEmpty()是否有意義?
for (Map<String, String> dic : dics) {
if (!dic.isEmpty()) {
Iterator<Map.Entry<String, String>> it = dic.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> pair = it.next();
Log.d("Substitute", pair.getKey() + " => " + pair.getValue());
}
}
}
畢竟,如果地圖/ DIC是空的,而()循環將不進入,所以它看起來像支票dic.isEmpty()是多餘的 - 除非有一些其他的理由它?
您的回覆沒有問題,但您的意思可能是「如果另一個線程刪除了項目並在空白檢查和迭代器抓取之間爲空」 – sactiw 2013-04-09 16:24:42
@sactiw是的,你說得很對。我的措辭需要在兩行之間進行閱讀,並感謝您填寫「行間」。 – 2013-04-10 13:58:38