[Java] Урок: Ассоциативные массивы - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Alowir, Sanoxxx  
[Java] Урок: Ассоциативные массивы
DexT3R Дата: Воскресенье, 03.11.2013, 12:40 | Сообщение # 1
(•̪●)=ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿ ̿””
Сообщений: 1978
Статус: Offline
А у вас никогда не возникало желание обращаться к массиву не через индекс, а по любому ключу? Вот допустим у нас есть студент, мы знаем про него много информации, но все данные про студентов хранятся в массиве, тогда достать информацию из мы массива можем только по его номеру, поэтому нам приходиться пробегать весь массив, если мы знаем например только его имя или что - то еще. И встает вопрос как сделать так, чтобы можно было обращаться не только по целочисленному значению в массив, а по любому ключу. Например мы хотим получать всех пользователей по их логину, а не по волшебному номеру, который и сам пользователь то не знает. Очевидно, что логин это строка, и что мы не можем более менее нормально обеспечивать доступ к информации быстрее чем за O(N) с применением массива, тогда на помощь к нам приходит ассоциативный массив. Ассоциативный массив прекрасен тем, что может работать с любым ключом, будь то сложный объект или строка. Для чего это нужно? Во первых мы не храним никакой избыточной информации, у нас есть только реально существующие элементы в массиве. Т.е мы, например бы могли брать создавать достаточно большой массив, брать хеш код у любого объекта и по нему класть в массив, что обеспечила нам бы работу с любыми ключами, так как известно что хеш функцию с тем или иным успехом можно составить для любого объекта. Но тогда бы у нас и возникли пустые места. После прочтения выше написанного, у вас, возможно, сложилось мнение, что ассоциативные массивы это круто и видимо решают достаточно большой класс задач, но на самом деле не все так просто. В зависимости от реализации ассоциативные массивы выполняют операции за время отличное от константы. Но уже хватит говорить об них, давайте рассмотрим интерфейс для работы с ассоциативными массивами.

Интерфейс Map


При создании Интерфейса Map указывают тип ключа и значения:
Код
Map<Integer, String> map;//Map<K,V>


НИЧЕГО НЕ ПРОДАЮ В ТЕЛЕГРАММЕ И ВК!!

Сообщение отредактировал Kukushka - Воскресенье, 03.11.2013, 12:41
[WS]Grenhelgets Дата: Понедельник, 01.12.2014, 17:45 | Сообщение # 2
Боец
Статус: Offline
Добавь в скайп nicelse.ws предложение есть.
GlaroX Дата: Четверг, 24.11.2016, 03:05 | Сообщение # 3
Боец
Сообщений: 201
Статус: Offline
Отличный разбор немного изучаю!

  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума