我知道這很簡單,但我無法找到任何問題。檢查java上的列表是否爲空會影響性能?
當我檢查一個列表是否爲空然後迭代它時,它會如何影響性能?
我有以下代碼,我不知道第二次調用getContainers()是否再次執行該方法,或者編譯器正在保存列表,因此不必再次運行getContainers()。
if (getContainers() != null)
{
for (Container container : getContainers())
{...
如果這不是真的我正在考慮做類似下面的代碼,但它似乎天真。
List<Container> listC = getContainers();
if (listC != null)
{
for (Container container : listC)
{...
第二種方法調用getContainers一次,所以它的性能更好 –
添加簡單的System.out.println()到getContainers(),你會看到結果=)對我來說第二個變體更好。 – Lugaru
檢查一個對象是否爲null幾乎沒有影響性能。第二種方法會有更好的性能,因爲它不會重複'getContainers()'方法中完成的操作;換句話說,它得到(或者在'null'結果的情況下沒有得到)列表***一次***;但這與'null'檢查本身的性能影響無關。 – XenoRo