这是JDK中HashMap
类的keySet()
方法。为什么作者将keySet
字段分配给局部变量ks
?
public Set<K> keySet() {
Set<K> ks;
return (ks = keySet) == null ? (keySet = new KeySet()) : ks;
}
上面和下面有什么区别?这与线程安全有关吗?public Set<K> keySet() {
return (keySet == null ? (keySet = new KeySet()) : keySet;
}