fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Kamus {
  6. private Map<String, LinkedHashSet<String>> data = new HashMap<>();
  7.  
  8. private void hubungkan(String a, String b) {
  9. if (a.equals(b)) {
  10. return;
  11. }
  12. if (!data.containsKey(a)) {
  13. data.put(a, new LinkedHashSet<String>());
  14. }
  15. data.get(a).add(b);
  16. }
  17.  
  18. public void tambah(String kata, String[] sinonim) {
  19. for (int i = 0; i <sinonim.length; i++) {
  20. hubungkan(kata, sinonim[i]);
  21. hubungkan(sinonim[i], kata);
  22. }
  23. }
  24.  
  25. public String[] ambilSinonim(String kata) {
  26. LinkedHashSet<String> hasil = data.get(kata);
  27. if (hasil == null) {
  28. return null;
  29. }
  30. return hasil.toArray(new String[0]);
  31. }
  32. }
  33.  
  34. public class Main {
  35. static void cetak(String[] arr) {
  36. if (arr == null) {
  37. System.out.println("null");
  38. }
  39. else {
  40. System.out.println(Arrays.toString(arr));
  41. }
  42. }
  43.  
  44. public static void main(String[] args) {
  45. Kamus kamus = new Kamus();
  46. kamus.tambah("big", new String[]{"large", "great"});
  47. kamus.tambah("big", new String[]{"huge", "fat"});
  48. kamus.tambah("huge", new String[]{"enormous", "gigantic"});
  49.  
  50. cetak(kamus.ambilSinonim("big"));
  51. cetak(kamus.ambilSinonim("huge"));
  52. cetak(kamus.ambilSinonim("gigantic"));
  53. cetak(kamus.ambilSinonim("colosal"));
  54. }
  55. }
Success #stdin #stdout 0.09s 54904KB
stdin
Standard input is empty
stdout
[large, great, huge, fat]
[big, enormous, gigantic]
[huge]
null