Java не позволяет нам напрямую создавать ArrayList
примитивов. Но мы можем создать ArrayList
класса оболочки примитивов.Показатели эффективности автобоксинга на ArrayList примитивных оберток
Но при доступе к примитивному значению компилятор автоматически выполняет упаковку и разворачивание. Разве это не накладные расходы? Мой вопрос - каковы последствия этого?
В таком случае не было бы int[]
лучше, чем ArrayList<Integer>
?
Кто-нибудь измерил производительность int[]
против ArrayList<Inetger>
за Java5.0
(когда это было впервые введено) и последние версии Java. Это было бы очень полезно для всех, кто столкнулся с этим вопросом, если бы вы могли поделиться результатами тестирования.
массив и а 'list' имеют разные обычаи, и это часто не сводится к скорости при выборе между ними. Также важно знать, что под каждым 'ArrayList' находится массив. – Obicere
Примитивный массив быстрее (нет двойного о нем), но 'List' (и любая коллекция вообще) удобнее для объектов. Таким образом, выбор за вами, но все, что вы делаете, не использует старый массив для открытого интерфейса. – MaxZoom
@Obicere true. Я пытаюсь понять, если мы скомпрометируем производительность за небольшую гибкость. Это особенно важно, когда мы должны делать выбор между int [] и ArrayList –
Chiseled