我想创建返回相同数量的名字和姓氏的方法,但是当我尝试测试和编译代码时,我将得到输出1,1,这是不正确的。因为有10个相同的名字和10个相同的姓氏。

public class Solution
{
    public static void main(String[] args)
    {
        HashMap<String, String> map = createMap();
        System.out.println(getCountTheSameFirstName(map, "test"));
        System.out.println(getCountTheSameLastName(map, "test"));
    }
    public static HashMap<String, String> createMap()
    {
        HashMap<String, String> odin = new HashMap<String, String>();
        odin.put("test","test");
        odin.put("test","test");
        odin.put("test","test");
        odin.put("test","test");
        odin.put("test","test");
        odin.put("test","test");
        odin.put("test","test");
        odin.put("test","test");
        odin.put("test","test");
        odin.put("test","test");

         return odin;
    }

    public static int getCountTheSameFirstName(HashMap<String, String> map, String name)
    {
        int count = 0;
        for(Map.Entry<String, String> lol : map.entrySet()){

        String value = lol.getValue();
            if(name.equals(value)){
                count++;
            }
    }
        return count;
    }

    public static int getCountTheSameLastName(HashMap<String, String> map, String familiy)
    {
        int count=0;
        for (Map.Entry<String,String> pair : map.entrySet())
        {
            String key = pair.getKey();
            if (familiy.equals(key))
            {
                count++;
            }
        }
        return count;
    }
}

最佳答案

抱歉!!如果您不使用重复键,则必须获得输出10&0

您的代码:只是我已经更改了键并获得了输出10&0:

public class Solution
{
    public static void main(String[] args)
    {
        HashMap<String, String> map = createMap();
        System.out.println(getCountTheSameFirstName(map, "test"));
        System.out.println(getCountTheSameLastName(map, "test"));
    }
    public static HashMap<String, String> createMap()
    {
        HashMap<String, String> odin = new HashMap<String, String>();
        odin.put("0","test");
        odin.put("1","test");
        odin.put("2","test");
        odin.put("3","test");
        odin.put("4","test");
        odin.put("5","test");
        odin.put("6","test");
        odin.put("7","test");
        odin.put("8","test");
        odin.put("9","test");

        return odin;
    }

    public static int getCountTheSameFirstName(HashMap<String, String> map, String name)
    {
        int count = 0;
        for(Map.Entry<String, String> lol : map.entrySet()){

            String value = lol.getValue();
            if(name.equals(value)){
                count++;
            }
        }
        return count;
    }

    public static int getCountTheSameLastName(HashMap<String, String> map, String familiy)
    {
        int count=0;
        for (Map.Entry<String,String> pair : map.entrySet())
        {
            String key = pair.getKey();
            if (familiy.equals(key))
            {
                count++;
            }
        }
        return count;
    }
}

10-06 14:02
查看更多