Java2 Flashcards Preview

мои заготовки > Java2 > Flashcards

Flashcards in Java2 Deck (41)
Loading flashcards...
1

Как добавить элемент в Set?

name_of_set.add(1);

2

Если нужно добавить в Map или Set в качестве ключа собственный объект, что нужно сделать перед этим?

перезаписать методы hashcode() и equals(), чтобы Java понимала, что объекты разные.

3

В каком порядке вызываются методы equals() и hashcode(), когда мы сравниваем объекты?

Сначала hashcode, если он "отработал" правильно, но этом заканчиваем проверку, если не т- equals();

4

Как называется, когда хеши объектов одинаковые, а сами объекты разные ?

Коллизия. hashCode() возвращает int, а размер int ограничен. Поэтому необходим метод equals().

5

Что значит, если метод hashCode() выдал два разных числа?

Объект точно разные.

6

Что лежит в основе hashSet?

hashMap, ключи которого всегда являются объектами класса objekt и просто скрыты.

7

Чем на самом деле являются значения в HashSet?

Ключами HashMap, с отрезанными значениями.

8

Что является "ячейкой" для HashMap? Что хранится в каждой ячейке?

Массив.
Связный список.

9

Как добавить свою логику сортировки объектов?

Мы должны создать новый класс, который реализует интерфейс Comparator.

10

Сколько методов имеет интерфейс Comparator?

Всего один - compare();

11

Что нужно сделать для того, чтобы реализовать свою логику сортировки?

Создать класс, с реализацией интерфейса Comparator и передать его объект в метод Collection.sort();

12

Когда класс имплементирует интерфейс Comparator, о чем нужно не забыть?

Что интерфейс параметризованный, нужно указать тип.

class X implements Comparator {

}

13

Где находится вся логика сортировки в классе, имплементирующем Comparator?

в методе Compare ();

14

Что представляет собой конвенция для метода Compare() интерфейса Comparator?

Метод compare(x1,x2) имеет два параметра и возвращаемый тип int :

если х1 > x2 => 1;
x1 < x2 => -1;
x1 == x2 => 0;

15

Какая вариация метода Collection.sort () нужна для реализации своей логики сортировки?

Collection.sort() c двумя параметрами, где первый - сортируемый объект, второй - объект класса, имплементирующего интерфейс Comparator с перезаписанным методом Compare;

16

Как использовать анонимный класс для создания своей логики сортировки?

Collection.sort(сортируемый_array, new Comparator {
@Override
//перезапись Compare
});

17

Как "дать понять" JAVE, что объекты определенного класса годятся для сортировки, т.е. объекты можно сравнивать между собой?

Класс должен имплементировать интерфейс Comparable

18

Какой метод нужно перезаписать, имплементируя интерфейс Comparable?

compareTo();

19

Что иы делаем, имплементируя интерфейс Comparable?

Задаем для класса естественный порядок сортировки

20

Какие два метода существуют для добавления объектов в Queue, в очередь?

add();
offer();

21

Какие два метода существуют для изъятия объектов из очереди?

remove();
poll();

22

Как ограничить максимальный размер очереди?

класс ArrayBlockingQueue, при создании объекта нужно указать размер очереди.

23

Что делает методsы remove() и poll() в Queue?

вызовет элемент в голове списка и удалит его.

24

Какая разница между парами add() и offer(); remove() и poll(); element() и peek(); ? в Queue?

Первые выбрасывают исключения, вторые специальные значения ( у метода offer - false)

25

По какому принципу работает класс Stack?

LIFO

26

Какой метод добавляет элемент в Stack?
Какой метод достает элемент из Stack?

name_of_stack.push(value);
pop();

27

Как создать итератор?

Iterator it = имя_коллекции.iterator();
дальше можно вызывать методы:
it.next();
it.hasNext();

28

Несмотря на то, что Цикл for each имеет под капотом Iterator, какое существенное различие есть между ними?

Iterator способен менять коллекцию во время того, как проходится по ней, а for each нет.

29

Как запустить код в отдельном потоке?

1. Создать класс, наследующийся от Thread.
2. В нем переопределить метод Run(), вписав в него наш код
3. В методе main вызвать метод start(); на объекте нашего класса;

class MyThread extends Thread {
public void run() {
//наш код
}
}

30

Как заставить поток "заснуть" на определенное время? На одну секунду.

В потоке написать:
Thread.sleep(1000);