ArrayList:
- Доступ к произвольному элементу по индексу за константное время O(1);
- Доступ к элементам по значению за линейное время O(N);
- Вставка в конец в среднем производится за константное время O(1);
- Удаление произвольного элемента из списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку влево (реальный размер массива (capacity) не изменяется);
- Вставка элемента в произвольное место списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку вправо;
- Минимум накладных расходов при хранении.
LinkedList:
- На получение элемента по индексу или значению потребуется линейное время O(N);
- На добавление и удаление в начало или конец списка потребуется константное O(1);
- Вставка или удаление в/из произвольного места за константное O(N);
- Требует больше памяти для хранения такого же количества элементов, потому что кроме самого элемента хранятся ещё указатели на следующий и предыдущий элементы списка.
В целом, LinkedList в абсолютных величинах проигрывает ArrayList и по потребляемой памяти, и по скорости выполнения операций. LinkedList предпочтительно применять, когда нужны частые операции вставки/удаления или в случаях, когда необходимо гарантированное время добавления элемента в список.
- Доступ к произвольному элементу по индексу за константное время O(1);
- Доступ к элементам по значению за линейное время O(N);
- Вставка в конец в среднем производится за константное время O(1);
- Удаление произвольного элемента из списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку влево (реальный размер массива (capacity) не изменяется);
- Вставка элемента в произвольное место списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку вправо;
- Минимум накладных расходов при хранении.
LinkedList:
- На получение элемента по индексу или значению потребуется линейное время O(N);
- На добавление и удаление в начало или конец списка потребуется константное O(1);
- Вставка или удаление в/из произвольного места за константное O(N);
- Требует больше памяти для хранения такого же количества элементов, потому что кроме самого элемента хранятся ещё указатели на следующий и предыдущий элементы списка.
В целом, LinkedList в абсолютных величинах проигрывает ArrayList и по потребляемой памяти, и по скорости выполнения операций. LinkedList предпочтительно применять, когда нужны частые операции вставки/удаления или в случаях, когда необходимо гарантированное время добавления элемента в список.
Является ли импортирование пакета java.awt, записанное в программе следующим образом:
Anonymous Quiz
66%
Да
28%
Нет
6%
Не знаю
🔥 Собрали новый большой тест на знание Java!
Тест для проверки ваших знаний, их актуальности и глубины понимания языка. Включает в себя 30 вопросов разной сложности - от простых до требующих анализа кода.
🖊 30 вопросов
⏱ 30 минут на прохождение
Линк: t.me/QuizBot?start=eKmlLvl4
📩 По любым вопросам и предложениям пишите: @igorhub
Тест для проверки ваших знаний, их актуальности и глубины понимания языка. Включает в себя 30 вопросов разной сложности - от простых до требующих анализа кода.
🖊 30 вопросов
⏱ 30 минут на прохождение
Линк: t.me/QuizBot?start=eKmlLvl4
📩 По любым вопросам и предложениям пишите: @igorhub
Quiz Directory
Тест на знание Java
Тест для проверки ваших знаний, их актуальности и глубины понимания языка. / 30 вопросов
Java задачи с собеседований pinned «🔥 Собрали новый большой тест на знание Java! Тест для проверки ваших знаний, их актуальности и глубины понимания языка. Включает в себя 30 вопросов разной сложности - от простых до требующих анализа кода. 🖊 30 вопросов ⏱ 30 минут на прохождение Линк: t.…»
Java задачи с собеседований
🔥 Собрали новый большой тест на знание Java! Тест для проверки ваших знаний, их актуальности и глубины понимания языка. Включает в себя 30 вопросов разной сложности - от простых до требующих анализа кода. 🖊 30 вопросов ⏱ 30 минут на прохождение Линк: t.…
Пока лучший результат - 24 правильных ответов, найдется ли смельчак бросить вызов?
Java задачи с собеседований
🔥 Собрали новый большой тест на знание Java! Тест для проверки ваших знаний, их актуальности и глубины понимания языка. Включает в себя 30 вопросов разной сложности - от простых до требующих анализа кода. 🖊 30 вопросов ⏱ 30 минут на прохождение Линк: t.…
Как вам большой тест?
Anonymous Poll
71%
годно
24%
нормально, но хотелось бы лучше
5%
отпишусь в личку
📩 По любым вопросам и предложениям пишите в личку автору теста: @igorhub
Каким будет результат компиляции и запуска данного кода:
Anonymous Quiz
49%
Super contructor Main(int) contructor Main() contructor
24%
Main(int) contructor Main() contructor
13%
Super contructor Main() contructor Main(int) contructor
8%
Main() contructor Main(int) contructor
7%
Не знаю
Что выведет на экран следующий код?
Anonymous Quiz
10%
Ошибка компиляции
3%
Ошибка выполнения
43%
two
2%
one
41%
three
2%
Не знаю
Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.
Анонимные классы имеют несколько ограничений:
- Их использование разрешено только в одном месте программы - месте его создания;
- Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
- Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.
Анонимные классы обычно применяются для:
- Создания объекта функции (function object), например реализация интерфейса Comparator;
- Создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных;
в статическом методе генерации;
- Инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.
Анонимные классы имеют несколько ограничений:
- Их использование разрешено только в одном месте программы - месте его создания;
- Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
- Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.
Анонимные классы обычно применяются для:
- Создания объекта функции (function object), например реализация интерфейса Comparator;
- Создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных;
в статическом методе генерации;
- Инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.