Я понял так, что в методах getCountTheSameFirstName и getCountTheSameLastName мы в качестве аргументов передаём MAP, объявленную в самом начале и строковую переменную, обозначающую фамилию и имя. Мы эти переменные не олбъявляли нигде, как они взаимодействуют с ключами и значениями MAP? Почему я должен сравнивать
if (fullName.equals(name))
почему name у нас обозначает значение? Надеюсь внятно спросил
public static int getCountTheSameFirstName(Map<String, String> fullName, String name) {
        int count = 0;
        for (String x: fullName.values()) {
            if (fullName.equals(name)) {
                count++;
            }
        }
        return  count;
    }

    public static int getCountTheSameLastName(Map<String, String> fullName, String lastName) {
       int count = 0;

       for (String y: fullName.keySet()){
           if (fullName.equals(lastName)){
              count++; //напишите тут ваш код
           }
       }
return count;
    }