java中map根据value获取key
时间: 2023-09-08 22:13:22 浏览: 86
在 Java 中,可以使用 map.get(key) 方法来根据 key 获取对应的 value。例如:
```
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
int value = map.get("apple");
System.out.println(value); // 输出 1
```
也可以使用 map.getOrDefault(key, defaultValue) 方法来获取 key 对应的 value,如果 key 不存在就返回 defaultValue。
如果使用map.get(key) 取不到值,会返回null.
相关问题
在JAVA中map根据value获取key
在Java中,可以使用以下方式根据value获取key:
1. 遍历map,逐个比较value并返回对应的key
```java
public static <K, V> K getKeyByValue(Map<K, V> map, V value) {
for (Map.Entry<K, V> entry : map.entrySet()) {
if (Objects.equals(value, entry.getValue())) {
return entry.getKey();
}
}
return null;
}
```
2. 使用Java 8的Stream API
```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);
}
```
JAVA8 map根据value获取key
在Java 8中,你可以使用Stream API来根据Map的value获取对应的key。下面是一个示例代码:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
Integer targetValue = 2;
Optional<String> key = map.entrySet()
.stream()
.filter(entry -> entry.getValue().equals(targetValue))
.map(Map.Entry::getKey)
.findFirst();
if (key.isPresent()) {
System.out.println("Key: " + key.get());
} else {
System.out.println("Key not found");
}
}
}
```
在上面的代码中,我们创建了一个包含键值对的Map。然后,我们定义了目标值targetValue为2。使用Stream API对Map的entrySet进行操作,我们过滤出值为targetValue的entry,并将其转换为键,最后使用findFirst方法获取第一个匹配的键。
如果找到了匹配的键,将会打印"Key: "加上找到的键值。如果没有找到匹配的键,则打印"Key not found"。
希望这个例子能帮助到你!如果有任何问题,请随时提问。
阅读全文