From 6f8783fa8df7fc9b35234103e3cab9705d40ec2a Mon Sep 17 00:00:00 2001 From: programofktw Date: Tue, 8 Jul 2025 13:00:24 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[BASIC]=20MAP=20=EA=B8=B0=EC=B4=88=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EC=9E=A1=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/datastructure/map/AbstractMap.java | 16 ++++++++++++++++ .../java/basic/datastructure/map/HashMap.java | 5 +++++ .../java/basic/datastructure/map/Map.java | 19 +++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 src/main/java/basic/datastructure/map/AbstractMap.java create mode 100644 src/main/java/basic/datastructure/map/HashMap.java create mode 100644 src/main/java/basic/datastructure/map/Map.java diff --git a/src/main/java/basic/datastructure/map/AbstractMap.java b/src/main/java/basic/datastructure/map/AbstractMap.java new file mode 100644 index 0000000..e3daad9 --- /dev/null +++ b/src/main/java/basic/datastructure/map/AbstractMap.java @@ -0,0 +1,16 @@ +package basic.datastructure.map; + +public abstract class AbstractMap implements Map{ + + private int size = 0; + + public int size(){ + return size; + + } + + public boolean isEmpty(){ + if(size==0) return true; + return false; + } +} diff --git a/src/main/java/basic/datastructure/map/HashMap.java b/src/main/java/basic/datastructure/map/HashMap.java new file mode 100644 index 0000000..b6df72c --- /dev/null +++ b/src/main/java/basic/datastructure/map/HashMap.java @@ -0,0 +1,5 @@ +package basic.datastructure.map; + +public class HashMap { + +} diff --git a/src/main/java/basic/datastructure/map/Map.java b/src/main/java/basic/datastructure/map/Map.java new file mode 100644 index 0000000..f8eb575 --- /dev/null +++ b/src/main/java/basic/datastructure/map/Map.java @@ -0,0 +1,19 @@ +package basic.datastructure.map; + +public interface Map { + + void put(K key, V value); + + boolean containsKey(K key); + + V get(K key); + + V remove(K key); + + void clear(); + + int size(); + + boolean isEmpty(); + +} From bed6b73718281958544d70a5cc6d1b9449a7d4f1 Mon Sep 17 00:00:00 2001 From: programofktw Date: Tue, 8 Jul 2025 13:09:21 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[MAP]=20:=20interface=20=EC=A0=9C=EC=9E=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/basic/datastructure/map/HashMap.java | 5 ----- src/main/java/basic/datastructure/map/Map.java | 2 ++ 2 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 src/main/java/basic/datastructure/map/HashMap.java diff --git a/src/main/java/basic/datastructure/map/HashMap.java b/src/main/java/basic/datastructure/map/HashMap.java deleted file mode 100644 index b6df72c..0000000 --- a/src/main/java/basic/datastructure/map/HashMap.java +++ /dev/null @@ -1,5 +0,0 @@ -package basic.datastructure.map; - -public class HashMap { - -} diff --git a/src/main/java/basic/datastructure/map/Map.java b/src/main/java/basic/datastructure/map/Map.java index f8eb575..c18f237 100644 --- a/src/main/java/basic/datastructure/map/Map.java +++ b/src/main/java/basic/datastructure/map/Map.java @@ -16,4 +16,6 @@ public interface Map { boolean isEmpty(); + + } From f8b9f872b0d6bf44a9197a650c5f17bbb9659c50 Mon Sep 17 00:00:00 2001 From: programofktw Date: Tue, 8 Jul 2025 13:12:57 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[MAP]=20:=20=EA=B0=80=EC=9E=A5=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=EC=A0=81=EC=9D=B8=20ListMap=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EC=84=B1=EB=8A=A5=20=EC=B5=9C=EC=95=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/basic/datastructure/map/ListMap.java | 4 ++++ src/main/java/basic/datastructure/map/Map.java | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/main/java/basic/datastructure/map/ListMap.java diff --git a/src/main/java/basic/datastructure/map/ListMap.java b/src/main/java/basic/datastructure/map/ListMap.java new file mode 100644 index 0000000..72fc024 --- /dev/null +++ b/src/main/java/basic/datastructure/map/ListMap.java @@ -0,0 +1,4 @@ +package basic.datastructure.map; + +public class ListMap { +} diff --git a/src/main/java/basic/datastructure/map/Map.java b/src/main/java/basic/datastructure/map/Map.java index c18f237..881733d 100644 --- a/src/main/java/basic/datastructure/map/Map.java +++ b/src/main/java/basic/datastructure/map/Map.java @@ -17,5 +17,9 @@ public interface Map { boolean isEmpty(); - + interface Entry { + K getKey(); + V getValue(); + V setValue(V value); + } } From 50d236f203c48a9fc27d20cadbce959ec6d8f52e Mon Sep 17 00:00:00 2001 From: programofktw Date: Tue, 8 Jul 2025 13:38:27 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[MAP]=20:=20ListMap=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/datastructure/map/AbstractMap.java | 11 +- .../java/basic/datastructure/map/ListMap.java | 104 +++++++++++++++++- 2 files changed, 105 insertions(+), 10 deletions(-) diff --git a/src/main/java/basic/datastructure/map/AbstractMap.java b/src/main/java/basic/datastructure/map/AbstractMap.java index e3daad9..e217088 100644 --- a/src/main/java/basic/datastructure/map/AbstractMap.java +++ b/src/main/java/basic/datastructure/map/AbstractMap.java @@ -2,15 +2,8 @@ public abstract class AbstractMap implements Map{ - private int size = 0; - public int size(){ - return size; - - } - - public boolean isEmpty(){ - if(size==0) return true; - return false; + protected void checkNullKey(K key){ + if(key==null) throw new NullPointerException(); } } diff --git a/src/main/java/basic/datastructure/map/ListMap.java b/src/main/java/basic/datastructure/map/ListMap.java index 72fc024..a857f63 100644 --- a/src/main/java/basic/datastructure/map/ListMap.java +++ b/src/main/java/basic/datastructure/map/ListMap.java @@ -1,4 +1,106 @@ package basic.datastructure.map; -public class ListMap { +import basic.datastructure.list.ArrayList; + +public class ListMap extends AbstractMap { + + ArrayList> list; + + public ListMap(){ + list = new ArrayList<>(); + } + + private int findIndexByKey(K key){ + checkNullKey(key); + for(int i =0 ;i(key,value)); + + else list.get(index).setValue(value); + } + + @Override + public boolean containsKey(K key) { + checkNullKey(key); + return findIndexByKey(key)!=-1; + } + + @Override + public V get(K key) { + checkNullKey(key); + int index = findIndexByKey(key); + + return (index!=-1)?list.get(index).getValue():null; + + } + + @Override + public V remove(K key) { + checkNullKey(key); + int index = findIndexByKey(key); + + if(index==-1) return null; + else{ + V value = list.get(index).getValue(); + list.remove(list.get(index)); + return value; + } + + } + + @Override + public void clear() { + list = new ArrayList<>(); + } + + @Override + public int size() { + return list.getSize(); + } + + @Override + public boolean isEmpty() { + return list.getSize()==0; + } + + private class Node implements Map.Entry{ + + private K key; + + private V value; + + Node(K key, V value){ + this.key = key; + + this.value = value; + } + + @Override + public K getKey() { + return this.key; + } + + @Override + public V getValue() { + return this.value; + } + + @Override + public V setValue(V value) { + this.value = value; + return this.value; + } + } } From 5644ab7b7ac219b0bde63864d1642c4490f4afb9 Mon Sep 17 00:00:00 2001 From: programofktw Date: Tue, 8 Jul 2025 13:39:02 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[Map]=20:=20ListMap=20Node=20=EC=A0=9C?= =?UTF-8?q?=EB=84=A4=EB=A6=AD=20=ED=95=B4=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/basic/datastructure/map/ListMap.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/basic/datastructure/map/ListMap.java b/src/main/java/basic/datastructure/map/ListMap.java index a857f63..94d5edc 100644 --- a/src/main/java/basic/datastructure/map/ListMap.java +++ b/src/main/java/basic/datastructure/map/ListMap.java @@ -4,7 +4,7 @@ public class ListMap extends AbstractMap { - ArrayList> list; + ArrayList list; public ListMap(){ list = new ArrayList<>(); @@ -26,7 +26,7 @@ public void put(K key, V value) { checkNullKey(key); int index = findIndexByKey(key); - if(index==-1) list.add(new Node<>(key,value)); + if(index==-1) list.add(new Node(key,value)); else list.get(index).setValue(value); }