Java2 Flashcards
Как добавить элемент в Set?
name_of_set.add(1);
Если нужно добавить в Map или Set в качестве ключа собственный объект, что нужно сделать перед этим?
перезаписать методы hashcode() и equals(), чтобы Java понимала, что объекты разные.
В каком порядке вызываются методы equals() и hashcode(), когда мы сравниваем объекты?
Сначала hashcode, если он “отработал” правильно, но этом заканчиваем проверку, если не т- equals();
Как называется, когда хеши объектов одинаковые, а сами объекты разные ?
Коллизия. hashCode() возвращает int, а размер int ограничен. Поэтому необходим метод equals().
Что значит, если метод hashCode() выдал два разных числа?
Объект точно разные.
Что лежит в основе hashSet?
hashMap, ключи которого всегда являются объектами класса objekt и просто скрыты.
Чем на самом деле являются значения в HashSet?
Ключами HashMap, с отрезанными значениями.
Что является “ячейкой” для HashMap? Что хранится в каждой ячейке?
Массив.
Связный список.
Как добавить свою логику сортировки объектов?
Мы должны создать новый класс, который реализует интерфейс Comparator.
Сколько методов имеет интерфейс Comparator?
Всего один - compare();
Что нужно сделать для того, чтобы реализовать свою логику сортировки?
Создать класс, с реализацией интерфейса Comparator и передать его объект в метод Collection.sort();
Когда класс имплементирует интерфейс Comparator, о чем нужно не забыть?
Что интерфейс параметризованный, нужно указать тип.
class X implements Comparator {
}
Где находится вся логика сортировки в классе, имплементирующем Comparator?
в методе Compare ();
Что представляет собой конвенция для метода Compare() интерфейса Comparator?
Метод compare(x1,x2) имеет два параметра и возвращаемый тип int :
если х1 > x2 => 1;
x1 < x2 => -1;
x1 == x2 => 0;
Какая вариация метода Collection.sort () нужна для реализации своей логики сортировки?
Collection.sort() c двумя параметрами, где первый - сортируемый объект, второй - объект класса, имплементирующего интерфейс Comparator с перезаписанным методом Compare;
Как использовать анонимный класс для создания своей логики сортировки?
Collection.sort(сортируемый_array, new Comparator { @Override //перезапись Compare });