Я не знаю, как получить значение на карте, которая была наименее.Получите наименьшее значение на карте
проблема:
Написать метод, который принимает редчайшую карту, ключами которого являются строками, и значения которого представляют собой целые числа в качестве параметра и возвращает целое значение, которое происходит наименьшее количество раз в карте. Если есть связь, верните меньшее целочисленное значение. Если карта пуста, выделите исключение.
Например, предположим, что карта содержит сопоставления от имен учеников (строки) до их возраста (целые числа). Ваш метод вернет наименее часто встречающийся возраст. Рассмотрим переменную карту м, содержащую следующий пар ключ/значение:
{Алисса = 22, Char = 25, Dan = 25, Джефф = 20, Kasey = 20, Ким = 20, Mogran = 25, Ryan = 25, Stef = 22} Три человека в возрасте 20 лет (Jeff, Kasey, и Kim), два человека: 22 года (Алисса и Стеф), а четыре человека - 25 лет (Char, Dan, Mogran и Ryan). Таким образом, вызов редчайших (м) возвращает 22, потому что только два человека в этом возрасте.
Если есть галстук (два или более редких возраста , которые происходят одинаково), верните самый младший возраст среди . Например, если бы мы добавили еще одну пару Kelly = 22 к карте выше, теперь будет галстук из трех человек в возрасте 20 лет (Jeff, Kasey, Kim) и три человека в возрасте 22 лет (Алисса, Келли, Стеф). Таким образом, вызов , вызывающий самый редкий (m), теперь возвращает 20, потому что 20 меньше из самых редких значений .
сейчас я считаю, что этот код дает мне наименьшее количество int, но как я могу получить это значение?
public static int rarest (Map<String, Integer> map) {
List<Integer> list = new ArrayList<Integer>();
for(Integer i: map.values()) {
list.add(i);
}
int min = 0, count = 0;
for(Integer i: list) {
count = Collections.frequency(list, i);
if(count < min) {
min = count;
}
}
return min;
}
Это также необходимо обработать галстук, и в этом случае вернуть smalle r целое число. – Jason
Я не знаю почему, но он всегда возвращает 0. Когда он должен вернуться 22. – JavaWannabee
Это потому, что в коде есть небольшая ошибка. Я отредактирую его. – Jason