Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //code.oa.gg/java8/1131
- // 문제 : 아래와 같이 출력되도록 해주세요.
- class Main {
- public static void main(String[] args) {
- HashMap aMap = new HashMap();
- aMap.put(1, "안녕");
- aMap.put("A", false);
- aMap.put("A", true);
- System.out.println(aMap.get("A"));
- // 출력 : true
- }
- }
- class HashMap {
- Object[] keys;
- Object[] datas;
- int lastIndex;
- HashMap() {
- keys = new Object[1];
- datas = new Object[1];
- lastIndex = -1;
- }
- void put(Object key, Object data) {
- lastIndex++; // 현재 값을 넣으려는 인덱스
- // 배열의 길이가 현재 인덱스 값과 같아지면 배열을 늘려야 함.
- if (lastIndex >= keys.length) {
- Object[] newKeys = new Object[lastIndex + 1];
- Object[] newDatas = new Object[lastIndex + 1];
- for (int i = 0; i < lastIndex; i++) {
- newKeys[i] = keys[i];
- newDatas[i] = datas[i];
- }
- keys = newKeys;
- datas = newDatas;
- }
- keys[lastIndex] = key;
- datas[lastIndex] = data;
- boolean isDup = false;
- int dupIndex = -1;
- // 넣은 키가 중복인지 체크
- for(int i = 0; i < lastIndex; i++) {
- if (keys[i].equals(key)) {
- isDup = true;
- dupIndex = i;
- break;
- }
- }
- // 중복인 경우
- if (isDup) {
- for (int i = dupIndex; i < lastIndex; i++) {
- keys[i] = keys[i + 1];
- datas[i] = datas[i + 1];
- }
- lastIndex--;
- }
- }
- Object get(Object key) {
- int dataIndex = -1;
- for(int i = 0; i <= lastIndex; i++) {
- if(key.equals(keys[i])) {
- dataIndex = i;
- }
- }
- return datas[dataIndex];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement