java map通过value找到key
时间: 2023-04-25 17:04:39 浏览: 86
可以通过遍历Map中的所有键值对,判断每个值是否等于目标值,如果相等,则返回对应的键。也可以使用Java 8中的Stream API来实现:
```
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 通过遍历实现
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue().equals(2)) {
System.out.println(entry.getKey()); // 输出 "B"
}
}
// 使用Stream API实现
String key = map.entrySet().stream()
.filter(entry -> entry.getValue().equals(2))
.map(Map.Entry::getKey)
.findFirst()
.orElse(null);
System.out.println(key); // 输出 "B"
```
相关问题
java map通过value获取key
可以通过遍历整个Map的方式,依次判断每个键所对应的值是否与给定的值相等,如果相等,则返回该键。也可以利用Java 8提供的新特性进行优化,使用stream和lambda表达式来实现。具体实现方法请参考以下代码:
```java
public static <K, V> K getKeyByValue(Map<K, V> map, V value) {
return map.entrySet()
.stream()
.filter(entry -> Objects.equals(entry.getValue(), value))
.map(Map.Entry::getKey)
.findFirst()
.orElse(null);
}
```
该方法会返回Map中第一个与给定值相等的键,如果没有找到匹配的键,则返回null。
java map根据value获取key
可以通过遍历Map中的所有key-value对,在匹配到目标value后取出相应的key。代码示例如下:
```java
public static <K, V> K getKey(Map<K, V> map, V value) {
for (Map.Entry<K, V> entry : map.entrySet()) {
if (entry.getValue().equals(value)) {
return entry.getKey();
}
}
return null;
}
```
调用该方法,输入目标Map和需要查找的value,即可得到对应的key。
```java
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
Integer value = 2;
String key = getKey(map, value);
System.out.println(key); // 输出 "b"
```
阅读全文