Size: a a a

2020 August 18

IS

Ivan Stepanov in learn.java
Gukov Viktor
add(0, foo)?
Клонировать и добавить?
источник

GV

Gukov Viktor in learn.java
Ivan Stepanov
Клонировать и добавить?
Можно и клонировать
источник

IS

Ivan Stepanov in learn.java
Gukov Viktor
Можно и клонировать
Лан, оставлю так
источник

DC

Denis Chikanov in learn.java
Ivan Stepanov
Лан, оставлю так
А не проще
var list = new ArrayList<>(bar));
list.add(0, foo);
источник

IS

Ivan Stepanov in learn.java
Denis Chikanov
А не проще
var list = new ArrayList<>(bar));
list.add(0, foo);
Я бывший программист плюсов, мне это очень сильно не нравится
источник

DC

Denis Chikanov in learn.java
Ivan Stepanov
Я бывший программист плюсов, мне это очень сильно не нравится
Это классно, но чем не нравится-то?
источник

IS

Ivan Stepanov in learn.java
Потому что происходит опять аллокация, и опять копирование
источник

DC

Denis Chikanov in learn.java
Ivan Stepanov
Потому что происходит опять аллокация, и опять копирование
Правильно, а в addAll аллокаций и копирований будет меньше, лол.
источник

IS

Ivan Stepanov in learn.java
Denis Chikanov
Правильно, а в addAll аллокаций и копирований будет меньше, лол.
Уже аллоцировано, я указал initialCapacity
источник

IS

Ivan Stepanov in learn.java
Будет только одно копирование, а твой вариант это два копирования
источник

DC

Denis Chikanov in learn.java
Ivan Stepanov
Будет только одно копирование, а твой вариант это два копирования
А ты хоть знаешь, по какой логике капасити выделяется?
источник

DC

Denis Chikanov in learn.java
Хотя копирование и правда будет, ладно
источник

IS

Ivan Stepanov in learn.java
Denis Chikanov
А ты хоть знаешь, по какой логике капасити выделяется?
Вообще без понятия
источник

IS

Ivan Stepanov in learn.java
Кстати, а там ведь копирование ссылок будет?
источник

IS

Ivan Stepanov in learn.java
А то мало ли)))
источник

DC

Denis Chikanov in learn.java
Ivan Stepanov
Кстати, а там ведь копирование ссылок будет?
А ты подумай, почитай
источник

GV

Gukov Viktor in learn.java
Ivan Stepanov
Я бывший программист плюсов, мне это очень сильно не нравится
Ты сначала массив перегоняешь в лист, аллоцируя память, а потом addAll перегоняет его в массив Object[] повторно тратя память
источник

IS

Ivan Stepanov in learn.java
Gukov Viktor
Ты сначала массив перегоняешь в лист, аллоцируя память, а потом addAll перегоняет его в массив Object[] повторно тратя память
точно
источник

GV

Gukov Viktor in learn.java
Проще тогда уж самому ручками собрать новый массив и запихнуть его в лист
источник

DC

Denis Chikanov in learn.java
Ivan Stepanov
точно
Мораль сей басни такова: пытаться считать аллокации в не performance-critical местах, работая на джаве - маразм
источник