fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4. private Map<String, Integer> poinKlub;
  5.  
  6. public Main(List<String> daftarKlub) {
  7. poinKlub = new HashMap<>();
  8. for (String klub : daftarKlub) {
  9. poinKlub.put(klub, 0);
  10. }
  11. }
  12.  
  13. public void catatPermainan(String klubKandang, String klubTandang, String skor) {
  14. String[] skorSplit = skor.split(":");
  15. int skorKandang = Integer.parseInt(skorSplit[0]);
  16. int skorTandang = Integer.parseInt(skorSplit[1]);
  17.  
  18. if (skorKandang > skorTandang) {
  19. poinKlub.put(klubKandang, poinKlub.get(klubKandang) + 3);
  20. } else if (skorKandang < skorTandang) {
  21. poinKlub.put(klubTandang, poinKlub.get(klubTandang) + 3);
  22. } else {
  23. poinKlub.put(klubTandang, poinKlub.get(klubTandang) + 1);
  24. poinKlub.put(klubKandang, poinKlub.get(klubKandang) + 1);
  25. }
  26. }
  27.  
  28. public Map<String, Integer> cetakKlasemen() {
  29. List<Map.Entry<String, Integer>> list = new ArrayList<>(poinKlub.entrySet());
  30. list.sort((a, b) -> b.getValue().compareTo(a.getValue()));
  31.  
  32. Map<String, Integer> hasil = new LinkedHashMap<>();
  33. for (Map.Entry<String, Integer> entry : list) {
  34. hasil.put(entry.getKey(), entry.getValue());
  35. }
  36.  
  37. return hasil;
  38. }
  39.  
  40. public String ambilPeringkat(int nomorPeringkat) {
  41. Map<String, Integer> urutan = cetakKlasemen();
  42. List<String> listNama = new ArrayList<>(urutan.keySet());
  43. if (nomorPeringkat >= 1 && nomorPeringkat <= listNama.size()) {
  44. return listNama.get(nomorPeringkat - 1);
  45. }
  46. return null;
  47. }
  48.  
  49. public static void main(String[] args) {
  50. Main klasemen = new Main(Arrays.asList("Liverpool", "Chelsea", "Arsenal"));
  51. klasemen.catatPermainan("Arsenal", "Liverpool", "2:1");
  52. klasemen.catatPermainan("Arsenal", "Chelsea", "1:1");
  53. klasemen.catatPermainan("Chelsea", "Arsenal", "0:3");
  54. klasemen.catatPermainan("Chelsea", "Liverpool", "3:2");
  55. klasemen.catatPermainan("Liverpool", "Arsenal", "2:2");
  56. klasemen.catatPermainan("Liverpool", "Chelsea", "0:0");
  57.  
  58. System.out.println("Klasemen: " + klasemen.cetakKlasemen());
  59. System.out.println("Peringkat ke-2: " + klasemen.ambilPeringkat(2));
  60. }
  61. }
  62.  
Success #stdin #stdout 0.15s 55552KB
stdin
Standard input is empty
stdout
Klasemen: {Arsenal=8, Chelsea=5, Liverpool=2}
Peringkat ke-2: Chelsea