Предпочтительное использование ObjectArrayList по сравнению с ArrayList

Я очень новичок в Java. Недавно я наткнулся на fastutil и нашел класс ObjectArrayList.

Есть ли разница в производительности, если вместо ArrayList используется ObjectArrayList? Каковы варианты использования ObjectArrayList?

2 ответа

Согласно документации fastutil

Специфичный для типа список на основе массива; предоставляет некоторые дополнительные методы, которые используют полиморфизм, чтобы избежать (не) бокса.

Реализация fastutil имеет выигрыш в производительности в тех случаях, когда происходит (не) бокс.

ObjectArrayList поддерживается массивом универсального типа. Принимая во внимание, что ArrayList поддерживается Object[] На самом деле производительность между двумя будет номинальной. Однако FWIW, похоже, эта библиотека предоставляет примитивные массивы IntArrayListDoubleArrayList где эти заявления о боксе фактически увидят видимые преимущества в больших наборах данных.

Однако, если вы новичок в Java. Я настоятельно рекомендую ознакомиться с java.util.ArrayList, прежде чем искать другие варианты. В большинстве случаев использование стандарта перевешивает выигрыш в производительности.

Вы не должны беспокоиться о производительности, когда вы начинаете изучать новый язык. Сосредоточьтесь на основах. Напишите исполняемый код, а затем напишите полезный код. Скорость и эффективность имеют значение только тогда, когда код, который вы пишете, влияет на мир вокруг вас (например, написание кода для работы). Не беспокойтесь о fastutil и ObjectArrayList. Завершите ваше приложение с ArrayList, и если ваше приложение слишком медленное для вас, только тогда вы должны найти что-то быстрее.

Другие вопросы по тегам