/* package whatever; // don't place package name! */
import java.util.*;
import java.util.stream.*;
import java.util.concurrent.atomic.AtomicInteger;
/* Name of the class has to be "Main" only if the class is public. */
public class Main
{
"Gower", 281,
"Usk", 291,
"Wye", 283,
"Bala", 282,
"Pen y Fan", 292,
"Llangorse", 290,
"Snowdon", 288,
"Taff", 296,
"Cadair Idris", 292
);
public static String[] getTopRoomsBooked
(Map
<String, Integer
> rooms,
int n
) {
// just for the row id in inner print
AtomicInteger id = new AtomicInteger(1);
return rooms.entrySet().stream()
.sorted(byTime.thenComparing(byName))
.limit(n)
// inner print
.
peek(e
-> System.
out.
printf("%d: %s %d%n", id.
getAndIncrement(), e.
getKey(), e.
getValue())) .collect(Collectors.toList())
}
{
int[] arr = {1, 3, 5};
.
forEach(a
-> System.
out.
println("Top " + a
+ ":\n" + Arrays.
toString(Main.
getTopRoomsBooked(rooms, a
)) + "\n======\n"
));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwppbXBvcnQgamF2YS51dGlsLio7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLio7CmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC5hdG9taWMuQXRvbWljSW50ZWdlcjsKCgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KcHVibGljIGNsYXNzIE1haW4KewoJc3RhdGljIE1hcDxTdHJpbmcsIEludGVnZXI+IHJvb21zID0gTWFwLm9mKAogICAgICAgICJHb3dlciIsIDI4MSwKICAgICAgICAiVXNrIiwgMjkxLAogICAgICAgICJXeWUiLCAyODMsCiAgICAgICAgIkJhbGEiLCAyODIsCiAgICAgICAgIlBlbiB5IEZhbiIsIDI5MiwKICAgICAgICAiTGxhbmdvcnNlIiwgMjkwLAogICAgICAgICJTbm93ZG9uIiwgMjg4LAogICAgICAgICJUYWZmIiwgMjk2LAogICAgICAgICJDYWRhaXIgSWRyaXMiLCAyOTIKICAgICk7CiAgICAKCXB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0VG9wUm9vbXNCb29rZWQoTWFwPFN0cmluZywgSW50ZWdlcj4gcm9vbXMsIGludCBuKSB7CgkKCSAgICAvLyBqdXN0IGZvciB0aGUgcm93IGlkIGluIGlubmVyIHByaW50CgkgICAgQXRvbWljSW50ZWdlciBpZCA9IG5ldyBBdG9taWNJbnRlZ2VyKDEpOwoJICAKCSAgICBDb21wYXJhdG9yPE1hcC5FbnRyeTxTdHJpbmcsIEludGVnZXI+PiBieVRpbWUgPSBDb21wYXJhdG9yLmNvbXBhcmluZyhNYXAuRW50cnk6OmdldFZhbHVlLCBDb21wYXJhdG9yLnJldmVyc2VPcmRlcigpKTsKCSAgICBDb21wYXJhdG9yPE1hcC5FbnRyeTxTdHJpbmcsIEludGVnZXI+PiBieU5hbWUgPSBDb21wYXJhdG9yLmNvbXBhcmluZyhNYXAuRW50cnk6OmdldEtleSk7CgkgICAgCgkgICAgcmV0dXJuIHJvb21zLmVudHJ5U2V0KCkuc3RyZWFtKCkKCSAgICAgICAgICAgICAgICAuc29ydGVkKGJ5VGltZS50aGVuQ29tcGFyaW5nKGJ5TmFtZSkpCgkgICAgICAgICAgICAgICAgLmxpbWl0KG4pCgkgICAgLy8gaW5uZXIgcHJpbnQgICAgICAgCgkgICAgICAgICAgICAgICAgLnBlZWsoZSAtPiBTeXN0ZW0ub3V0LnByaW50ZigiJWQ6ICVzICVkJW4iLCBpZC5nZXRBbmRJbmNyZW1lbnQoKSwgZS5nZXRLZXkoKSwgZS5nZXRWYWx1ZSgpKSkgCgkgICAgICAgICAgICAgICAgLm1hcChNYXAuRW50cnk6OmdldEtleSkKCSAgICAgICAgICAgICAgICAuY29sbGVjdChDb2xsZWN0b3JzLnRvTGlzdCgpKQoJICAgICAgICAgICAgICAgIC50b0FycmF5KFN0cmluZ1tdOjpuZXcpOwoJfQoJCgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCWludFtdIGFyciA9IHsxLCAzLCA1fTsKCSAgICBBcnJheXMuc3RyZWFtKGFycikKCSAgICAgICAgICAuZm9yRWFjaChhIC0+IFN5c3RlbS5vdXQucHJpbnRsbigiVG9wICIgKyBhICsgIjpcbiIgCgkgICAgICAgICAgICAgICsgQXJyYXlzLnRvU3RyaW5nKE1haW4uZ2V0VG9wUm9vbXNCb29rZWQocm9vbXMsIGEpKSAKCSAgICAgICAgICAgICAgKyAiXG49PT09PT1cbiIKCSAgICApKTsKCX0KfQ==