Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. //code.oa.gg/java8/1131
  2. // 문제 : 아래와 같이 출력되도록 해주세요.
  3.  
  4. class Main {
  5. public static void main(String[] args) {
  6. HashMap aMap = new HashMap();
  7.  
  8. aMap.put(1, "안녕");
  9. aMap.put("A", false);
  10. aMap.put("A", true);
  11.  
  12. System.out.println(aMap.get("A"));
  13. // 출력 : true
  14. }
  15. }
  16.  
  17. class HashMap {
  18. Object[] keys;
  19. Object[] datas;
  20. int lastIndex;
  21.  
  22. HashMap() {
  23. keys = new Object[1];
  24. datas = new Object[1];
  25. lastIndex = -1;
  26. }
  27.  
  28. void put(Object key, Object data) {
  29. lastIndex++; // 현재 값을 넣으려는 인덱스
  30.  
  31. // 배열의 길이가 현재 인덱스 값과 같아지면 배열을 늘려야 함.
  32. if (lastIndex >= keys.length) {
  33. Object[] newKeys = new Object[lastIndex + 1];
  34. Object[] newDatas = new Object[lastIndex + 1];
  35. for (int i = 0; i < lastIndex; i++) {
  36. newKeys[i] = keys[i];
  37. newDatas[i] = datas[i];
  38. }
  39. keys = newKeys;
  40. datas = newDatas;
  41. }
  42. keys[lastIndex] = key;
  43. datas[lastIndex] = data;
  44.  
  45. boolean isDup = false;
  46. int dupIndex = -1;
  47.  
  48. // 넣은 키가 중복인지 체크
  49. for(int i = 0; i < lastIndex; i++) {
  50. if (keys[i].equals(key)) {
  51. isDup = true;
  52. dupIndex = i;
  53. break;
  54. }
  55. }
  56. // 중복인 경우
  57. if (isDup) {
  58. for (int i = dupIndex; i < lastIndex; i++) {
  59. keys[i] = keys[i + 1];
  60. datas[i] = datas[i + 1];
  61. }
  62. lastIndex--;
  63. }
  64. }
  65.  
  66. Object get(Object key) {
  67. int dataIndex = -1;
  68. for(int i = 0; i <= lastIndex; i++) {
  69. if(key.equals(keys[i])) {
  70. dataIndex = i;
  71. }
  72. }
  73. return datas[dataIndex];
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement