гнездо 2020 осень призывник ява написано направление осиное

Предупреждение: Данная статья является блоггером оригинальной статьи, следовать CC 4.0 BY-SA авторского соглашения, воспроизведенный, пожалуйста , приложите ссылку первоисточника и это утверждение.
Эта ссылка: https://blog.csdn.net/Miaoshuowen/article/details/102502487

Название:
Введите имя более восьми ид города плюс, 23112411-пекин так, то рассчитывать знак номера перед тремя городами, тот же город несколько раз в чек ID в том же городе только один раз помню, сколько раз то же самое, первая пресс - города в алфавитном порядке.
Пример:
Входной сигнал:

34839946-beijing 
34839934-beijing 
34839946-beijing 
34839946-shanghai
34839912-hangzhou
-1

Выход:

city=beijing, citycount=2
city=hangzhou, citycount=1
city=shanghai, citycount=1

Идеи:
По в HashMap будут повторять знак фильтрации входных данных, а затем использовать HashMap подсчитать количество возвратов во всех городах, и , наконец , сортируются данные в HashMap. Есть много вариантов сортировки:
① пузырьковой сортировки, новый массив строк , чтобы сохранить название города, по значению индекса из HashMap сортировки массива
② отсортированного по Collections.sort
подробного использования Collections.sort ссылки: https: //www.cnblogs .com / yw0219 / р / 7222108.html? utm_source = itdadao & utm_medium = направление

Код : Collections.sort сортировать

public class Mafengwo1 implements Comparable<Mafengwo1> {

	private String city;
	private int citycount;

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public int getCitycount() {
		return citycount;
	}

	public void setCitycount(int citycount) {
		this.citycount = citycount;
	}

	public Mafengwo1(String city, int citycount) {
		this.city = city;
		this.citycount = citycount;
	}

	public Mafengwo1() {
		
	}

	static Map<String, Integer> map = new HashMap<String, Integer>();

	static Map<String, Integer> map2 = new HashMap<String, Integer>();

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String str = new String();
		str = in.next();
		while (!str.equals("-1")) {

			map.put(str, 1);

			str = in.next();
		}

		in.close();
		Mafengwo1 test = new Mafengwo1();
		test.city(map);
	}

	
	public void city(Map<String, Integer> map) {

		for (String str : map.keySet()) {
			String str2 = new String();
			str2 = str.substring(9);
			map2.put(str2, map2.getOrDefault(str2, 0) + 1);

		}

		int i = 0;
		List<Mafengwo1> empList = new ArrayList<>();
		for (String k : map2.keySet()) {
			Mafengwo1 emp = new Mafengwo1(k, map2.get(k));
			empList.add(emp);
		}
		Collections.sort(empList, Comparator.reverseOrder());
		while(i<3) {
			System.out.println(empList.get(i));
			i++;
		}
		
	}

	@Override
	public String toString() {
		return " city=" + city + ", citycount=" + citycount;
	}

	
	@Override
	public int compareTo(Mafengwo1 o) {

		if (this.getCitycount() - o.getCitycount() == 0) {
			return o.getCity().compareTo(this.getCity());
		}
		return this.getCitycount() - o.getCitycount();
	}
}

рекомендация

отblog.csdn.net/Miaoshuowen/article/details/102502487