Это продолжение моего поста о 100 днях кодирования, посвященного второму дню.
Чтобы прочитать полный пост Дня 2, используйте эту ссылку.
Итак, для начала краткое изложение того, что я узнал:
- Получение значений.
- Помещение значений в хэш-карту.
- Итерация по хэш-карте.
- Удаление значений из хэш-карты.
- Использование другого класса в хэш-карте.
- Условие Fail Fast: исключение одновременной модификации
___________________________________________________________________
Введение:
- Hashmap расширяет класс абстрактной карты.
- Он реализует интерфейс карты.
- Он использует пары ключ-значение.
- Он может содержать только уникальные элементы.
- В хэш-картах разрешен только один нулевой ключ, тогда как может существовать несколько нулевых значений.
- Синтаксис:
HashMap ‹ Integer,String›map = new HashMap‹Integer,String›();
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Ввод значений в Hashmap:
map.put(1,"A");
map.put(2,"B");
map.put(3,"C");
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Извлечение значений в HashMap:
карта.получить(1)
O/P : A
карта.получить(4)
О/П: ноль
Здесь, если ключ не существует, он не покажет исключение. Вместо этого он вернет нулевое значение.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Чтобы перебрать хэш-карту:
for(Запись m: map.entrySet())
{
System.out.println(m.getKey()+" "+m.getValue());
}
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Чтобы удалить пару из Hashmap:
карта.удалить(2)
System.out.println(карта);
O/P: {1=”A”,3=”C”}
Порядок не меняется и остается неизменным.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Использование другого класса в Hashmap:
Рассмотрим класс под названием Student :
Он имеет, скажем, 2 параметра, имя и возраст.
Итак, когда вы создаете Hashmap:
HashMap ‹Integer,Student› stu =new HashMap‹Integer,Student›();
Студент s1 = новый Студент («Аади», 21);
Студент s2 = новый Студент («Нил», 24);
и так далее.
Чтобы поместить элементы в Hashmap:
stu.put(1,s1);
stu.put(2,s2);
Чтобы повторить хэш-карту:
for (Entry m: stu.entrySet())
{
int s = m.getKey();
Студент s =m.getValue();
System.out.println("Информация о студенте: "+s);
System.out.println(s.name+” ”+s.age);
}
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
HashMaps не синхронизированы. Это означает, что несколько потоков могут получать доступ, использовать и изменять одну и ту же хэш-карту. Поэтому он используется в многопоточности. Это повышает эффективность.
В чем проблема?
Рассмотрим пять потоков, скажем, A, B, C, D и E, обращающихся к одному и тому же хэш-карте.
Эта хэш-карта содержит пару ключ-значение: (1, "neet").
Предположим, что один поток, скажем, A, обновляет значение ключа =1 на «Boat», и теперь C хочет получить доступ к этим данным. Он получит обновленную версию, содержащую значение «Boat», а не «neet».
Это называется условием Fail Fast. Это также называется исключением одновременной модификации, потому что модификация пытается быть выполнена, когда коллекция активна или используется.
___________________________________________________________________
Вот и все! Я надеюсь, что это было полезно, и если вы хотите посмотреть видео, просто нажмите на эту ссылку.
Счастливого обучения :)
___________________________________________________________________
Похлопайте, чтобы у меня было достаточно мотивации, чтобы писать каждый день :D