Java Portal | Программирование
13.1K subscribers
975 photos
73 videos
32 files
790 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Алгоритмическая сложность коллекций

Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.

Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.

На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.

#lesson #collections
Очередь в Java

Описать работу очереди можно одной фразой: «Первый вошёл — последний вышел». Другими словами, элементы добавление первые в очередь будут получены первые остальных.

Для реализации очередей в Java есть интерфейс Queue<E> и метод pull(), который удаляет первый элемент в очереди и возвращает его.

#java #lesson #collections
3🤔2
Итераторы

Это объекты, по которым можно "пройтись". Итератором считается объект, который реализовал интерфейс Iterator <E>.

Такие итераторы можно получить, например, у ArrayList, поскольку он реализует Collection, а значит у него есть метод Iterator<E> iterator().

#java #lesson #collections
2
.stream()

С Java 8 мы можем обрабатывать коллекции (списки, множества): фильтровать (.filter()), сортировать (.sorted()), преобразовывать (.map()).

Также ничто нам не мешает пройтись по списку (.forEach()), сохранить в виде другого типа (.collect()) или посчитать значений (.reduce()).

📌 Документация

#java #lesson #collections
7
Тип Optional

Если вы работает с коллекциями то, наверное, уже столкнулись с проблемой, когда метод stream().any() может ничего не вернуть. Мы получаем ошибку, с которой неудобно работать.

Вместо этого мы можем получить null, задать значение по умолчанию или выбросить другую ошибку.

#java #lesson #collections
Класс LinkedList

Это структура данных в виде связанного списка. Таким образом мы можем быстро добавлять элементы, но нам будет проблематично брать данные по индексу.

У него есть все методы, которые определены в интерфейсах List, Queue, Deque.

addFirst() / offerFirst() — добавляет элемент в начало списка. addLast() / offerLast() — в конец.

removeFirst() / pollFirst() — удаляет первый элемент из начала списка. removeLast() / pollLast() — с конца списка.

getFirst() / peekFirst(); getLast() / peekLast() — возвращает первый/последний элемент списка.

📌 Документация

#java #lesson #collections
Кортежи в Java

Часто бывает ситуация, когда надо вернуть из метода несколько объектов одного разного типа. На этот случай придуманы кортежи.

В Java кортежи реализованы интерфейсом Cortege<F, S> и имплементированы классом CortageChain. Чтобы хранить в нём данные, достаточно с помощью дженериков задать типы и присвоить им значения.

Важной особенностью кортежей является возможность выстраивать цепочки, например так:

Cortege<Long, Cortege<String, Cortege<Float, Cortege.End>>>

#java #lesson #collections
Интерфейс Comparable

Помимо обычных коллекций, в Java существуют Sorted... коллекции. Их значения автоматически сортируются в натуральном порядке.

Для реализации такой сортировки тип значения должен имплементировать интерфейс Comparable. Он сравнивает два объекта и возвращает "разницу" между ними в виде числа.

В дальнейшем это разница будет использованная для сортировки значений в коллекции.

#lesson #collections
Алгоритмическая сложность коллекций

Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.

Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.

На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.

#lesson #collections
👍2
Кортежи в Java

Часто бывает ситуация, когда надо вернуть из метода несколько объектов одного разного типа. На этот случай придуманы кортежи.

В Java кортежи реализованы интерфейсом Cortege<F, S> и имплементированы классом CortageChain. Чтобы хранить в нём данные, достаточно с помощью дженериков задать типы и присвоить им значения.

Важной особенностью кортежей является возможность выстраивать цепочки, например так:

Cortege<Long, Cortege<String, Cortege<Float, Cortege.End>>>

#java #lesson #collections
👍3👎3
Интерфейс Comparable

Помимо обычных коллекций, в Java существуют Sorted... коллекции. Их значения автоматически сортируются в натуральном порядке.

Для реализации такой сортировки тип значения должен имплементировать интерфейс Comparable. Он сравнивает два объекта и возвращает "разницу" между ними в виде числа.

В дальнейшем это разница будет использованная для сортировки значений в коллекции.

#lesson #collections
Алгоритмическая сложность коллекций

Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.

Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.

На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.

#lesson #collections
Алгоритмическая сложность коллекций

Как вам уже известно, коллекции намного затратнее чем массивы, но взамен предоставляют широкий список инструментов обработки данных.

Для каждой задачи нужно подобрать правильную коллекцию, чтобы с ней было удобно работать. Но также надо не забывать о её алгоритмической сложности при работе с данными.

На табличке выше записаны коллекции и сложности их методов. Рекомендуем выучить её наизусть.

#lesson #collections
👍2👎1
Класс LinkedList

Это структура данных в виде связанного списка. Таким образом мы можем быстро добавлять элементы, но нам будет проблематично брать данные по индексу.

У него есть все методы, которые определены в интерфейсах List, Queue, Deque.

addFirst() / offerFirst() — добавляет элемент в начало списка. addLast() / offerLast() — в конец.

removeFirst() / pollFirst() — удаляет первый элемент из начала списка. removeLast() / pollLast() — с конца списка.

getFirst() / peekFirst(); getLast() / peekLast() — возвращает первый/последний элемент списка.

📌 Документация

#java #lesson #collections
2🌚2
Интерфейс Comparable

Помимо обычных коллекций, в Java существуют Sorted... коллекции. Их значения автоматически сортируются в натуральном порядке.

Для реализации такой сортировки тип значения должен имплементировать интерфейс Comparable. Он сравнивает два объекта и возвращает "разницу" между ними в виде числа.

В дальнейшем это разница будет использованная для сортировки значений в коллекции.

#lesson #collections