import java.util.ArrayList; import java.util.Map; import java.util.Scanner; import java.util.TreeMap; public class Main { static class Keyword{ String string; int count; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); TreeMap<String, Integer> map=new TreeMap<>(); String string[]=scanner.nextLine().split(" "); for (int i = 0; i < string.length; i++) { map.put(string[i], map.getOrDefault(string[i], 0)+1); } ArrayList<Keyword> list=new ArrayList<>(); for (Map.Entry<String, Integer> entry : map.entrySet()) { if(entry.getValue()>=3) { Keyword keyword=new Keyword(); keyword.string=entry.getKey(); keyword.count=entry.getValue(); list.add(keyword); } } list.sort((k1,k2)->{ if(k1.count!=k2.count) { return k2.count-k1.count; } return k1.string.compareTo(k2.string); }); for (Keyword keyword : list) { System.out.println(keyword.string); } } }
这题很适合使用键值对的形式先行存储数据,后面要排序就把符合条件的键值对生成对应的对象,然后传给集合排序