336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
해쉬테이블에 대한 설명은 조대협 블로그를 참고 !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | package com.study; import java.util.LinkedList; class HashTable { LinkedList<Node>[] data; public HashTable(int size) { this.data = new LinkedList[size]; } int getHashCode(String key) { int hashCode = 0; for(char c : key.toCharArray()) { hashCode += c; } return hashCode; } int convertToIndex(int hashCode) { return hashCode % data.length; } Node searchKey(LinkedList<Node> list, String key) { if(list == null) return null; for(Node node : list) { if(node.key.equals(key)) { return node; } } return null; } void put(String key, String value) { int hashCode = getHashCode(key); int index = convertToIndex(hashCode); LinkedList<Node> list = data[index]; if(list == null) { list = new LinkedList<Node>(); data[index] = list; } Node node = searchKey(list, key); if(node == null) { list.addLast(new Node(key, value)); } else { node.setValue(value); } } public String get(String key) { int hashCode = getHashCode(key); int index = convertToIndex(hashCode); LinkedList<Node> list = data[index]; Node node = searchKey(list, key); return node == null ? "Not found" : node.getValue(); } class Node { String key; String value; public Node(String key, String value) { this.key = key; this.value = value; } public String getValue() { return this.value; } public void setValue(String value) { this.value = value; } } } public class Test { public static void main(String[] args) { HashTable ht = new HashTable(3); ht.put("sung", "She is pretty"); ht.put("jin", "She is model"); ht.put("hee", "She is angel"); ht.put("min", "She is cute"); System.out.println(ht.get("sung")); System.out.println(ht.get("jin")); System.out.println(ht.get("hee")); System.out.println(ht.get("min")); System.out.println(ht.get("jae")); } } |
'알고리즘 및 자료구조 > 자바로 만드는 자료구조' 카테고리의 다른 글
자바로 Queue 구현하기 (0) | 2018.10.10 |
---|---|
자바로 Tree 구현하기 (2) | 2018.09.18 |
자바로 Stack 구현하기 (0) | 2018.09.18 |