Это метод keySet() в классе HashMap из JDK. Почему автор присвоил поле 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;
}