在java.util.HashMap.values()实现中对变量进行额外赋值的原因

时间:2017-06-28 09:15:11

标签: java collections hashmap

我刚刚通过java.util.HashMap值实现,我发现了这种方式的values()实现

 public Collection<V> values() {
        Collection<V> vs = values;
        if (vs == null) {
            vs = new Values();
            values = vs;
        }
        return vs;
    }

为什么需要额外的vs变量?

为什么不呢只是

 public Collection<V> values() {
        if (values == null) {

            values =  new Values();     
     }
        return values;
    }

有什么特别的原因吗?如果有人知道背后的原因,请分享一下吗?

0 个答案:

没有答案