Загрузка страницы

Java: Структуры данных (Модуль 0. Урок 1. List/Set/Array).

В первом модуле будем говорить об абстрактных структурах данных (СД).

Что же такое структура данных (СД)?

СД - способ организации информации в компьютере таким образом, чтобы потом ее эффективно использовать.

Простыми словами - представление логической связи между отдельными элементами определенного типа.

Каждая СД работает с записями. Один объект внутри структуры данных - одна запись. Одна запись может быть n-размерной.

По мерности записей на один объект, СД делят на:

0 - юнит/unit (но таких СД нет);
1 - синглтон/singleton - хранит только объект. Это может быть число, строка, да вообще любой объект;
2 - пара/couple, pair, dual, twin, product - хранит не только сам объект, но и дополнительную, связанную с ним, информацию, которая не является частью этого объекта. Это может быть ключ к объекту или некий другой объект;
3 - трипл/triple...
n - ...

Рассмотрим пример:
Какую СД выбрать?

Задача 1. Составить список всех студентов в группе.
Задача 2. Список всех аудиторий в корпусе университета.
Какого размера будет запись в СД?

Один студент - одна запись в СД, но форма записи может быть многомерной. Для списка аудиторий нам точно triplet не пригодится. Поэтому размер записи для студентов / аудиторий - 1 / 1

СД для хранения или для обработки?

- хранение - просматривать, изменять, сохранять запись.
- обработка - достать и удалить.

Список студентов нужно как-то обрабатывать, а список аудиторий просто для учета, поэтому: обрабатывать **/** хранить.
Разрешаем ли мы хранить дубликаты?

Фамилии, имена могут совпадать, в отличии от номеров аудиторий в одном корпусе, поэтому: да / нет

СД будет фиксированного или изменяемого размера? Для обоих задач — изменяемого.

Выбираем СД:

для учета студентов — list (например, его имплементация ArrayList);
для учета аудиторий — set (например, его имплементация TreeSet)
Почитайте про каждую из этих структур данных из примера. Возможно у вас будут иные обоснованные предложения той или иной СД для этого примера? Обсуждение приветствуется :)

Классификация структур данных

Collections.pdf (https://storage.googleapis.com/hexlet/java/collections/m0e1/CollectionPDF.pdf)

Полезные ссылки:

Структура данных (https://goo.gl/UZzZ1g)
Абстрактный тип данных (https://goo.gl/ICcXJc)
List (https://goo.gl/QseuVG)
Array (https://goo.gl/2mmpN5)
Set (https://goo.gl/2dwBy5)

Наши ссылки:

• Discord-чат академии: https://bit.ly/2K6XQQ2
• VK - https://vk.com/kovacademy
• FB - https://facebook.com/groups/kovalevskyi
• Twitter - https://twitter.com/KovAcademy
• YouTube - https://youtube.com/KovalevskyiAcademy
• LinkedIn - https://linkedin.com/groups/5119016/
• Patreon - https://patreon.com/b0noi
• Web site - http://kovalevskyi.academy/

Видео Java: Структуры данных (Модуль 0. Урок 1. List/Set/Array). канала Kovalevskyi Academy
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
10 ноября 2016 г. 13:14:46
00:13:41
Другие видео канала
Алгоритмы и Структуры Данных. Урок 1: Введение. Числа Фибоначчи.Алгоритмы и Структуры Данных. Урок 1: Введение. Числа Фибоначчи.HashMap Java собеседованиеHashMap Java собеседованиеДелаем вывод информации с помощью JavaScriptДелаем вывод информации с помощью JavaScriptData Structures and Algorithms for BeginnersData Structures and Algorithms for BeginnersАлгоритмы и структуры данных простыми словами. Зачем учить алгоритмы? #codonaftАлгоритмы и структуры данных простыми словами. Зачем учить алгоритмы? #codonaftПонимание Lambda выражений в Java / Зачем они нужны и какие проблемы решают LambdaПонимание Lambda выражений в Java / Зачем они нужны и какие проблемы решают LambdaОбзорная лекция по JavaОбзорная лекция по Java6 важных структур данных6 важных структур данныхДетальный разбор примитивных типов данных в Java  - пойми как устроены примитивы #javaДетальный разбор примитивных типов данных в Java - пойми как устроены примитивы #javaБинарное дерево. Полное понимание! Динамические структуры данных #3Бинарное дерево. Полное понимание! Динамические структуры данных #3Python ищем заказы на фриланс и выполняем их. Python requests, lxml, csvPython ищем заказы на фриланс и выполняем их. Python requests, lxml, csvJava. Класс Object. Разбор вопросов на собеседование.Java. Класс Object. Разбор вопросов на собеседование.Собеседование Java Spring - Разбор вопросов с собеседований на Java DeveloperСобеседование Java Spring - Разбор вопросов с собеседований на Java DeveloperАлгоритмы и структуры данных 1. Массивы и связные списки.Алгоритмы и структуры данных 1. Массивы и связные списки.A Complete Overview of Quicksort (Data Structures & Algorithms #11)A Complete Overview of Quicksort (Data Structures & Algorithms #11)Data Structures Easy to Advanced Course - Full Tutorial from a Google EngineerData Structures Easy to Advanced Course - Full Tutorial from a Google Engineer9 Compare и Comparator в Java9 Compare и Comparator в JavaСтруктуры данных в Java и KotlinСтруктуры данных в Java и KotlinСтруктуры данных - Linked ListСтруктуры данных - Linked List
Яндекс.Метрика