Как передать ключ значения в переменную в HashMap
Могу ли я передать ключ значения в переменную в hashmap? Например, у меня есть ключ 987456321 для значения "A". Как передать ключ в переменную, чтобы я мог далее подразделить ключ и распечатать его как 987-654-321
,
- принимая
987
как первый, 654
как середина,321
как последний, так что я могу напечататьпервый+ "-" + средний+ "-" + последний как 987-654-321
используя метод toString(). Я новичок в Java, поэтому помогите мне, пожалуйста
public static void main(String[] args)
{
HashMap<Long, String> hashMap = new HashMap<>();
hashMap.put(987456321L, "A");
hashMap.put(321654998L, "B");
hashMap.put(874563210L, "C");
hashMap.put(987453216L, "B");
hashMap.put(321650123L, "C");
hashMap.put(874568745L, "C");
System.out.println("Size of Map:"+hashMap.size());
System.out.println("Enter no: ");
userInput = new Scanner(System.in);
no = userInput.nextLong();
String name = hashMap.get(no);
System.out.println(name);
for (Map.Entry<Long, String> entry : hashMap.entrySet())
{
String key = entry.getKey().toString();
String value = entry.getValue();
System.out.println("name " + value + "- Number " + key);
}
}
2 ответа
Вы можете перебрать все пары ключ-значение вашей карты следующим образом:
for (final Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
// do whatever you need to do with key
}
Если вас интересует ключ только для определенного значения - не имеет особого смысла, поскольку одно и то же значение может храниться на карте с разными ключами - вам нужно будет проверять значение в цикле выше, пока не найдете ключ. пара ценностей интереса. Например:
if (Objects.equals(value, "A")) {
// do something with the key for value "A"
}
1. Решение для конкретной стоимости:
Этот метод возвращает ключи для вашего значения
public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) {
Set<T> keys = new HashSet<T>();
for (Entry<T, E> entry : map.entrySet()) {
if (Objects.equals(value, entry.getValue())) {
keys.add(entry.getKey());
}
}
return keys;
}
Теперь все, что вам нужно сделать, это перебрать возвращенный набор и сделать то, что вы хотите с переменной, содержащей ваш ключ
for (Long key : set) {
String s = String.valueOf(key);
}