Java 关于计算密钥总数 请不要认为这个问题是重复的,尽管我之前有类似的问题,但是这次是不同的。 Map <String, String>m = new LinkedHashMap<String, String>(); m.put ("123", "23"); m.put ("323", "23"); m.put ("153", "23"); m.put ("623", "23"); m.put ("125", "23"); m.put ("122", "24"); m.put ("167", "24"); m.put ("173", "24"); m.put ("113", "25"); Map m=newlinkedhashmap(); m、 付诸表决(“123”、“23”); m、 付诸表决(“323”、“23”); m、 付诸表决(“153”、“23”); m、 卖出(“623”、“23”); m、 卖出(“125”、“23”); m、 付诸表决(“122”、“24”); m、 付诸表决(“167”、“24”); m、 付诸表决(“173”、“24”); m、 付诸表决(“113”、“25”);

Java 关于计算密钥总数 请不要认为这个问题是重复的,尽管我之前有类似的问题,但是这次是不同的。 Map <String, String>m = new LinkedHashMap<String, String>(); m.put ("123", "23"); m.put ("323", "23"); m.put ("153", "23"); m.put ("623", "23"); m.put ("125", "23"); m.put ("122", "24"); m.put ("167", "24"); m.put ("173", "24"); m.put ("113", "25"); Map m=newlinkedhashmap(); m、 付诸表决(“123”、“23”); m、 付诸表决(“323”、“23”); m、 付诸表决(“153”、“23”); m、 卖出(“623”、“23”); m、 卖出(“125”、“23”); m、 付诸表决(“122”、“24”); m、 付诸表决(“167”、“24”); m、 付诸表决(“173”、“24”); m、 付诸表决(“113”、“25”);,java,Java,我需要找出与患者Id 23相关联的密钥数,如上图所示,5个密钥是相关联的,我遵循了以下方法 List<String> keys = new ArrayList<String>(); for(String str: m.keySet()) { if(m.get(str).equals("23")) { keys.add(str); System.out.p

我需要找出与患者Id 23相关联的密钥数,如上图所示,5个密钥是相关联的,我遵循了以下方法

List<String> keys = new ArrayList<String>();
        for(String str: m.keySet())
        {
            if(m.get(str).equals("23")) {
                keys.add(str);
                System.out.println(str);
            }
        }
List key=new ArrayList();
对于(字符串str:m.keySet())
{
如果(m.get(str).equals(“23”)){
添加(str);
系统输出打印项次(str);
}
}

请告知是否还有其他更有效的方法,如制作压缩程序或其他任何方法。

使用map.entrySet()迭代映射,并检查计数是否有匹配增量

不清楚您想要的是钥匙的数量还是总数:

如果您只需要计数:

Map<String, String>m = new LinkedHashMap<String, String>();
        int count=0;
        for(Map.Entry<String,String> en: m.entrySet()){
            if(en.getValue().equals("23")){
                count++;
            }

        }
        System.out.println(count);
Mapm=newlinkedhashmap();
整数计数=0;
对于(Map.Entry en:m.entrySet()){
如果(en.getValue()等于(“23”)){
计数++;
}
}
系统输出打印项次(计数);
如果您想要总和:

Map<String, String>m = new LinkedHashMap<String, String>();
        int sum=0;
        for(Map.Entry<String,String> en: m.entrySet()){
            if(en.getValue().equals("23")){
                sum+=Integer.parseInt(en.getKey());
            }

        }
        System.out.println(sum);
Mapm=newlinkedhashmap();
整数和=0;
对于(Map.Entry en:m.entrySet()){
如果(en.getValue()等于(“23”)){
sum+=Integer.parseInt(en.getKey());
}
}
系统输出打印项数(总和);
您正在避免哈希查找。另外,如果你只需要计数;然后

int count = 0;
for(String str: m.values())
            {
                if(m.equals("23")) {
                    count++
                }
            }
return count;

这是重复的:你说这个问题和你之前的问题不同,但我看不出有什么不同。你的键必须是字符串吗?它们可以改为整数吗?@MrSmith42我怀疑OP想要把键中的数字相加。@Peter Lawrey:在另一个问题中,OP想要一个列表,现在是列表的大小。这不是真正的新问题。@PeterLawrey谢谢,但哈哈,我刚刚编辑了它,我想OP想要的是计数,而不是总数..:P
int count = 0;
for(String str: m.values())
            {
                if(m.equals("23")) {
                    count++
                }
            }
return count;