Java map

Preciso ordenar a lista de acordo com a frequência
// Imprimir o Código e Subgrupo da opção com maior quantidade vendida​
List venda = Files.readAllLines(Path.of(“C:\Projeto\dados_venda.txt”));

	System.out.println("Subgrupos");
	
	Map<String, Integer> cont = new TreeMap<String, Integer>();
	for (String  linha : venda) {
		String [] campos = linha.split(";");

		if (!cont.containsKey(campos [0]))
			cont.put(campos [0], 0);
		cont.put(campos [0], cont.get(campos [0]) + 1);
	}

	for (Map.Entry<String, Integer> entry : cont.entrySet()) {
		System.out.printf("%s => %d%n", entry.getKey(), entry.getValue());

	}
	

}

}

Tentei usar o collections mas não da certo