У меня был следующий фрагмент кода, который IntelliJ предложил изменить:
String[] normalizedNames = rawToNormalized.values().stream().toArray(String[]::new);
на
String[] normalizedAliases = rawToNormalized.values().toArray(new String[0]);
Пост Алексея Шипилёва (https://shipilev.net/blog/2016/arrays-wisdom-ancients/) предложил:
toArray (новый T [0]) кажется более быстрым, безопасным и более чистым по контракту, и поэтому должен быть выбором по умолчанию сейчас. "
Может кто-нибудь уточнить, как именно toArray(new String[0])
отличается от toArray(String[]::new)
переходом из потока и использованием toArray
без Collector
.
Может ли toArray(new String[0])
все еще использоваться в потоке? Будет ли он по-прежнему более производительным / лучшим выбором?