Домой Учебники по Java и J2EE Java: как получить случайный элемент значения ключа из HashMap

Java: как получить случайный элемент значения ключа из HashMap

1184
0

Есть ли способ получить значение HashMap случайным образом в Java ? Конечно, ниже приведен простой код Java, который представляет собой то же самое.

Кроме того, в конце программы есть бонусный код для перемешивания полного HashMap . Перетасовка большой коллекции всегда будет дорогой. Вам понадобится как минимум одна ссылка для каждой записи. например, для 1 миллиона записей вам потребуется около 4 МБ.

Заметка; случайная операция O(N)

CrunchifyGetRandomKeyValueFromHashMap.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
пакет ком . crunchify. учебные пособия ;
Импортировать Java. Util. ArrayList ;
Импортировать Java. Util. Коллекции ;
Импортировать Java. Util. HashMap ;
Импортировать Java. Util. Список ;
Импортировать Java. Util. Карта ;
Импортировать Java. Util. Случайный ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyGetRandomKeyValueFromHashMap {
общественности статический недействительным main ( Строка [ ] аргументы ) {
//
// Создать хеш-таблицу и поместить пару ключ-значение.
//
HashMap < String , Строка > компании знак равно новый HashMap < String , Строка > ( ) ;
компании . положить ( eBay , Южный Сан-Хосе ) ;
компании . положить ( Paypal , Север Сан-Хосе ) ;
компании . положить ( Google , Маунтин-Вью ) ;
компании . положить ( Yahoo , Санта-Клара ) ;
компании . положить ( «Твиттер» , Сан-Франциско ) ;
// Получить случайную запись из HashMap.
Объект [ ] crunchifyKeys знак равно компании . keySet ( ) . toArray ( ) ;
объект ключ знак равно crunchifyKeys [ новый Случайный ( ) . nextInt ( crunchifyKeys . length ) ] ;
Система. вне. println ( ************ Случайное значение ************ / n + ключ + :: + компании . получить ( ключ ) ) ;
Список < Карта . Вступление < Строка , String>> список знак равно новый ArrayList < Карта . Вступление < Строка , String>> (компании entrySet ().);
// Бонус Crunchify Советы: как перемешать список ??
// Каждый раз, когда вы получаете другой заказ …
Система. вне. println ( / n ************ Теперь давайте начнем перетасовывать список ************ ) ;
Коллекции . перемешать ( список ) ;
за ( Карта . Вступление < Строка , Строка > запись : список ) {
Система. вне. println ( entry . getKey ( ) + :: + запись. getValue ( ) ) ;
}
}
}

Другие должны читать:

ЧИТАТЬ ТАКЖЕ:  Java: Как проверить, содержит ли строка подстроку? Реализуйте свой собственный метод

Выход:

Выход

1
2
3
4
5
6
7
8
9
************ Случайное значение * ***********
щебет :: Сан- Франциско
* *********** Теперь давайте начать перетасовку списка * ***********
Paypal :: Север Сан- Хосе
eBay :: Южный Сан- Хосе
Google :: Маунтин- Вью
щебет :: Сан- Франциско
Yahoo :: Санта Клара
Java: как получить случайный элемент значения ключа из HashMap

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь