Предпочтительное использование ObjectArrayList по сравнению с ArrayList
Я очень новичок в Java. Недавно я наткнулся на fastutil и нашел класс ObjectArrayList.
Есть ли разница в производительности, если вместо ArrayList используется ObjectArrayList? Каковы варианты использования ObjectArrayList?
2 ответа
Согласно документации fastutil
Специфичный для типа список на основе массива; предоставляет некоторые дополнительные методы, которые используют полиморфизм, чтобы избежать (не) бокса.
Реализация fastutil имеет выигрыш в производительности в тех случаях, когда происходит (не) бокс.
ObjectArrayList
поддерживается массивом универсального типа. Принимая во внимание, что ArrayList
поддерживается Object[]
На самом деле производительность между двумя будет номинальной. Однако FWIW, похоже, эта библиотека предоставляет примитивные массивы IntArrayList
DoubleArrayList
где эти заявления о боксе фактически увидят видимые преимущества в больших наборах данных.
Однако, если вы новичок в Java. Я настоятельно рекомендую ознакомиться с java.util.ArrayList, прежде чем искать другие варианты. В большинстве случаев использование стандарта перевешивает выигрыш в производительности.
Вы не должны беспокоиться о производительности, когда вы начинаете изучать новый язык. Сосредоточьтесь на основах. Напишите исполняемый код, а затем напишите полезный код. Скорость и эффективность имеют значение только тогда, когда код, который вы пишете, влияет на мир вокруг вас (например, написание кода для работы). Не беспокойтесь о fastutil и ObjectArrayList. Завершите ваше приложение с ArrayList, и если ваше приложение слишком медленное для вас, только тогда вы должны найти что-то быстрее.