Ответ
Сложность — O(1).
Почему? ArrayList реализован на основе обычного массива. Доступ по индексу выполняется за константное время благодаря прямой адресации: array[index].
Пример:
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String element = list.get(1); // O(1) - мгновенный доступ ко второму элементу
Важное уточнение: Эта сложность относится только к доступу по индексу (get(index)). Поиск элемента по значению (indexOf(), contains()) имеет сложность O(n), так как требует последовательного перебора.
Ответ 18+ 🔞
А, слушай, тут один чувак пытался мне впарить, что ArrayList.get(index) — это типа O(n). Я чуть со стула не упал, блядь! Ну ты представляешь? Полный пиздец в голове!
Так вот, запомни раз и навсегда, как "Отче наш": доступ по индексу в ArrayList — это O(1), константа, мгновенно, на раз-два!
Почему? Да потому что внутри этой штуковины — обычный, преисподней старый массив! Ты когда пишешь list.get(5), Java не бежит туда пешком через все элементы, она сразу, сука, прыгает по адресу: начало_массива + (5 * размер_объекта). И всё! Хуй с горы — элемент у тебя в руках. Это как знать точный адрес хаты, а не ходить по всему кварталу и в каждое окно стучать.
Смотри, как это просто, ёпта:
ArrayList<String> list = new ArrayList<>();
list.add("A"); // Положили
list.add("B"); // Положили
list.add("C"); // Положили
String element = list.get(1); // O(1) - взяли прямо со второй полки! Ничего не искали!
Вот и вся магия. Но, блядь, внимание, важный момент, а то опять накосячишь!
Эта волшебная сложность O(1) работает ТОЛЬКО ДЛЯ .get(index) — когда ты тычешь пальцем в конкретное место.
А вот если ты начнёшь искать элемент по значению через list.indexOf("B") или list.contains("B") — вот тут-то и начинается пиздец, парень! Это уже O(n), потому что бедному процессору придётся, сука, потрахаться, перебирая все элементы с начала до конца, пока не найдёт нужный. Это как искать одну конкретную мартышлюшку в обезьяннике — придётся всех пересмотреть.
Короче, резюмирую: по индексу взял — O(1), быстро. По значению ищешь — O(n), можешь заебёшься. Запомни и не путай, а то будет тебе чих-пых в сраку на собеседовании!