题解 | 小红书推荐系统
小红书推荐系统
https://www.nowcoder.com/practice/e5b39c9034a84bf2a5e026b2b9b973d0
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>(16, 0.75F,
true);
while (in.hasNext()) {
String a = in.next();
linkedHashMap.put(a, linkedHashMap.getOrDefault(a, 0) + 1);
}
in.nextLine();
Set<Map.Entry<String, Integer>> entries = linkedHashMap.entrySet();
ArrayList<Map.Entry<String, Integer>> list = new ArrayList<>(entries);
List<Map.Entry<String, Integer>> collect = list.stream().sorted(
new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1,
Map.Entry<String, Integer> o2) {
int i = o1.getValue() - o2.getValue();
if (i != 0) {
return -i;
}
return o1.getKey().compareTo(o2.getKey());
}
}).collect(Collectors.toList());
collect.stream().filter(e->e.getValue() >= 3).map(e->e.getKey()).forEach(
System.out::println);
}
}
