Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
develop:java:in_next [2023/03/11 06:15] admin |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Begin_next ====== | ||
- | |||
- | |||
- | ==== Коллекции данных ==== | ||
- | === Разделение интерфейсов и реализаций === | ||
- | Собсна такое разделение является стандартом и дает множество преимуществ\\ | ||
- | < | ||
- | < | ||
- | Самая простая форма интерфейса может выглядеть так: | ||
- | <code java> | ||
- | interface Queue< | ||
- | { | ||
- | void add(E e lement); | ||
- | Е remove(); | ||
- | int size(); | ||
- | } | ||
- | </ | ||
- | А реализация с-но может сильно варьироваться и определяется классом, | ||
- | <code java> | ||
- | class CircularArrayQueue< | ||
- | { | ||
- | CircularArrayQueue(int capacity) | ||
- | public void add(E element) | ||
- | public Е remove () | ||
- | public int size () | ||
- | private Е[] elements; | ||
- | private int head; | ||
- | private int tail; | ||
- | } | ||
- | // или | ||
- | class LinkedListQueue< | ||
- | { | ||
- | LinkedListQueue () | ||
- | void add (Е element) | ||
- | public Е remove () | ||
- | public int size() | ||
- | private Link head; | ||
- | private Link tail; | ||
- | } | ||
- | </ | ||
- | </ | ||
- | |||
- | < | ||
- | < | ||
- | Основополагающий для классов коллекций | ||
- | <code java> | ||
- | public interface Collection< | ||
- | { | ||
- | boolean add(E element); | ||
- | Iterator< | ||
- | } | ||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | < | ||
- | < | ||
- | <code java> | ||
- | public interface Iterator< | ||
- | { | ||
- | E next(); | ||
- | boolean hasNext(); | ||
- | void remove(); | ||
- | } | ||
- | </ | ||
- | Нужно проверять наличие через " | ||
- | Порядок в котором перебираются элементы, | ||
- | Итераторы в java отличаются от сишных, | ||
- | Тобишь для каких либо д-й с итератором, | ||
- | </ | ||
- | |||
- | |||
- | === Интерфейсы в каркасе коллекции Java === | ||
- | < | ||
- | < | ||
- | {{: | ||
- | |||
- | **Связные списки**\\ | ||
- | Двунаправленные элементы, | ||
- | {{: | ||
- | |||
- | **Списочные массивы**\\ | ||
- | Интерфейс List описывает упорядоченную коллекцию, | ||
- | К слову, отличие **Vector** и **ArrayList** в том что первый потокобезопасный, | ||
- | |||
- | ****\\ | ||
- | |||
- | ****\\ | ||
- | |||
- | ****\\ | ||
- | |||
- | ****\\ | ||
- | |||
- | <code java> | ||
- | </ | ||
- | |||
- | <code java> | ||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ==== ==== | ||
- | |||
- | < | ||
- | < | ||
- | |||
- | <code java> | ||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||