Встречается на собеседованиях • сегодня

Как определить индекс, если требуется максимальная производительность

Для максимальной производительности при поиске индекса элемента в коллекции:

  1. Для массивов используйте System.arraycopy() или прямой доступ по индексу:
java
int index = -1;
for(int i = 0; i < array.length; i++) {
    if(array[i] == target) {
        index = i;
        break;
    }
}
  1. Для ArrayList - метод indexOf(), но для примитивов лучше ручной перебор:
java
int index = list.indexOf(element); // для объектов
// Или для примитивов:
int index = -1;
for(int i = 0; i < list.size(); i++) {
    if(list.get(i) == target) {
        index = i;
        break;
    }
}
  1. Для HashMap - используйте get() (O(1) в среднем случае):
java
Integer index = map.get(key); // вернет значение по ключу

Ключевые моменты:

  • Избегайте box/unbox для примитивов
  • Для больших данных предпочитайте массивы
  • Используйте break при нахождении элемента
  • Для частых поисков используйте HashMap
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы