Java. Урок 32. Ассоциативные массивы 1.5

А у вас никогда не возникало желание обращаться к массиву не через индекс, а по любому ключу? Вот допустим у нас есть студент, мы знаем про него много информации, но все данные про студентов хранятся в массиве, тогда достать информацию из мы массива можем только по его номеру, поэтому нам приходиться пробегать весь массив, если мы знаем например только его имя или что — то еще. И встает вопрос как сделать так, чтобы можно было обращаться не только по целочисленному значению в массив, а по любому ключу. Например мы хотим получать всех пользователей по их логину, а не по волшебному номеру, который и сам пользователь то не знает. Очевидно, что логин это строка, и что мы не можем более менее нормально обеспечивать доступ к информации быстрее чем за O(N) с применением массива, тогда на помощь к нам приходит ассоциативный массив. Ассоциативный массив прекрасен тем, что может работать с любым ключом, будь то сложный объект или строка. Для чего это нужно? Во первых мы не храним никакой избыточной информации, у нас есть только реально существующие элементы в массиве. Т.е мы, например бы могли брать создавать достаточно большой массив, брать хеш код у любого объекта и по нему класть в массив, что обеспечила нам бы работу с любыми ключами, так как известно что хеш функцию с тем или иным успехом можно составить для любого объекта. Но тогда бы у нас и возникли пустые места. После прочтения выше написанного, у вас, возможно, сложилось мнение, что ассоциативные массивы это круто и видимо решают достаточно большой класс задач, но на самом деле не все так просто. В зависимости от реализации ассоциативные массивы выполняют операции за время отличное от константы. Но уже хватит говорить об них, давайте рассмотрим интерфейс для работы с ассоциативными массивами.

Интерфейс Map

При создании Интерфейса Map указывают тип ключа и значения:

1
Map<Integer, String> map;//Map<K,V>

http://16mb.clan.su/publ/programmirovanie/java/java_urok_32_associativnye_massivy_2_5/13-1-0-140
Категория: Java | Добавил: ghost_mod (29.09.2016)
Просмотров: 324 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: