我知道这很简单,但我无法找到任何问题。检查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