Javazavr. Обучение Java.
4.22K subscribers
36 photos
55 links
Главный канал по Java.

Контент на любой вкус.
1. Туториалы
2. Видео
3. Задачи
4. Тесты
И многое другое.

Реклама: @anothertechrock
Download Telegram
Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
Ответ на "Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?"

Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().

#вопросы_с_собеседований
Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
👍2
Ответ на "Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?"

Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для HashMap это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.

#вопросы_с_собеседований
👍42
Каким образом реализованы методы hashCode() и equals() в классе Object?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
Ответ на "Каким образом реализованы методы hashCode() и equals() в классе Object?"

Реализация метода Object.equals() сводится к проверке на равенство двух ссылок:

 public boolean equals(Object obj) {
return (this == obj);
}

Реализация метода Object.hashCode() описана как native, т.е. определенной не с помощью Java кода и обычно возвращает адрес объекта в памяти:

public native int hashCode();

#вопросы_с_собеседований
👍3😁2
Что такое «коллекция»?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
🤯1
Ответ на "Что такое «коллекция»?"

«Коллекция»
- это структура данных, набор каких-либо объектов. Данными (объектами в наборе) могут быть числа, строки, объекты пользовательских классов и т.п.

#вопросы_с_собеседований
👍61
Почему Map — это не Collection, в то время как List и Set являются Collection?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
👍1
Ответ на "Почему Map — это не Collection, в то время как List и Set являются Collection?"

Collection
представляет собой совокупность некоторых элементов. Map - это совокупность пар «ключ-значение».

#вопросы_с_собеседований
В чем разница между классами java.util.Collection и java.util.Collections?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
👍5👎1
Ответ на "В чем разница между классами java.util.Collection и java.util.Collections?"

java.util.Collections - набор статических методов для работы с коллекциями.

java.util.Collection - один из основных интерфейсов Java Collections Framework.

#вопросы_с_собеседований
Чем различаются Enumeration и Iterator?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
Ответ на "Чем различаются Enumeration и Iterator?"

Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:

• с помощью Enumeration нельзя добавлять/удалять элементы;
• в Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNext(), Enumeration.nextElement() соответствует Iterator.next() и т.д);
Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.

#вопросы_с_собеседований
🔥6
Сравните Iterator и ListIterator.

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
👍4
Ответ на "Сравните Iterator и ListIterator."

ListIterator расширяет интерфейс Iterator
ListIterator может быть использован только для перебора элементов коллекции List;
Iterator позволяет перебирать элементы только в одном направлении, при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
• При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.

#вопросы_с_собеседований
🔥9👍1
Как поведёт себя коллекция, если вызвать iterator.remove()?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
Ответ на "Как поведёт себя коллекция, если вызвать iterator.remove()?"

Если вызову iterator.remove() предшествовал вызов iterator.next(), то iterator.remove() удалит элемент коллекции, на который указывает итератор, в противном случае будет выброшено IllegalStateException().

#вопросы_с_собеседований
🔥10
Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?

Пишите в комментариях ваш вариант. Ответ будет у нас в канале.

#вопросы_с_собеседований
Ответ на "Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?"

При следующем вызове методов итератора будет выброшено ConcurrentModificationException.

#вопросы_с_собеседований