Java查找所有具有特定值的键

标签 java

有没有办法找出映射中具有相同值的所有键。 喜欢

map.put("A","Abc");
map.put("B","Abc");
map.put("C","Abc"); 
map.put("D","Bcd");

这里我想找出所有值为“Abc”的键。

最佳答案

找到所有“x”,使得“y”被称为 filtering .

这就是你可以 filter using Java 8 Streams :

Stream<String> keys = map.entrySet().stream()
    .filter(x -> "Abc".equals(x.getValue()))
    .map(Map.Entry::getKey);

对于 Java 7,您必须手动执行此操作:

List<String> keys = new ArrayList<>();
for(Map.Entry<String, String> e : map.entrySet())
    if("Abc".equals(e.getValue()))
        keys.add(e.getKey());

关于Java查找所有具有特定值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30819627/

相关文章:

java - 回收者 View 中未连接适配器

java - 使用两个事务,一个似乎有效,但另一个无效。为什么?

java - 为什么语言设计者使用尖括号而不是圆括号?

java - Eclipse 中的 M2E 给出了 maven-compiler-plugin 错误,但是 Maven 安装没问题

java - 使用嵌入式嵌套类表示 JPA 中的复杂状态

java - Tomcat SSL 错误

java - 为什么这个数组中的所有元素都具有相同的值?

java - 在 tomcat 上部署简单的 soap web 服务时遇到问题

java - OpenLDAP 仅返回密码过期的警告

java - 编写一个方法来查找 ArrayList 中最大整数的索引时遇到问题