From 90da774f8fca0dc549350009aec99113d787ecd8 Mon Sep 17 00:00:00 2001 From: Brynkiewicz Date: Wed, 25 Mar 2026 09:42:13 +0100 Subject: [PATCH 1/5] Storage - first solution --- src/main/java/core/basesyntax/Main.java | 19 +++++++++++ .../core/basesyntax/impl/StorageImpl.java | 32 +++++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/main/java/core/basesyntax/Main.java diff --git a/src/main/java/core/basesyntax/Main.java b/src/main/java/core/basesyntax/Main.java new file mode 100644 index 000000000..bc36372fd --- /dev/null +++ b/src/main/java/core/basesyntax/Main.java @@ -0,0 +1,19 @@ +package core.basesyntax; + +import core.basesyntax.impl.StorageImpl; + +import javax.swing.*; + +public class Main { + public static void main(String[] args) { + StorageImpl storage = new StorageImpl<>(); + String box = "box3"; + storage.put(44, box); + storage.put(22, box); + storage.put(33, box); + storage.size(); + + System.out.println(storage.get(33)); + System.out.println(storage.size()); + } +} diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index 455a7b080..766f88ab6 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -1,19 +1,47 @@ package core.basesyntax.impl; import core.basesyntax.Storage; +import java.util.Objects; public class StorageImpl implements Storage { + private static final int MAX_STORAGE_SIZE = 10; + private K[] keys; + private V[] values; + private int size; + + public StorageImpl() { + keys = (K[]) new Object[MAX_STORAGE_SIZE]; + values = (V[]) new Object[MAX_STORAGE_SIZE]; + size = 0; + } + @Override public void put(K key, V value) { - } + for (int i = 0; i < size; i++) { + if (Objects.equals(key,keys[i])) { + values[i] = value; + return; + } + } + if (size < MAX_STORAGE_SIZE) { + keys[size] = key; + values[size] = value; + size++; + } + } @Override public V get(K key) { + for (int i = 0; i < size; i++) { + if (Objects.equals(key, keys[i])) { + return values[i]; + } + } return null; } @Override public int size() { - return -1; + return size; } } From ecf1d38823dd9c3361804debf766fa4f331e5068 Mon Sep 17 00:00:00 2001 From: Brynkiewicz Date: Wed, 25 Mar 2026 09:44:09 +0100 Subject: [PATCH 2/5] Storage - first checkstyle changes --- src/main/java/core/basesyntax/Main.java | 2 -- src/main/java/core/basesyntax/impl/StorageImpl.java | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/core/basesyntax/Main.java b/src/main/java/core/basesyntax/Main.java index bc36372fd..73cfaa7ab 100644 --- a/src/main/java/core/basesyntax/Main.java +++ b/src/main/java/core/basesyntax/Main.java @@ -2,8 +2,6 @@ import core.basesyntax.impl.StorageImpl; -import javax.swing.*; - public class Main { public static void main(String[] args) { StorageImpl storage = new StorageImpl<>(); diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index 766f88ab6..c2725a603 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -30,6 +30,7 @@ public void put(K key, V value) { size++; } } + @Override public V get(K key) { for (int i = 0; i < size; i++) { From 05e423bbde60547bef8a4c87bfe36b1577492f0a Mon Sep 17 00:00:00 2001 From: Brynkiewicz Date: Thu, 26 Mar 2026 14:02:10 +0100 Subject: [PATCH 3/5] Storage - comparisation method change --- src/main/java/core/basesyntax/impl/StorageImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index c2725a603..a839ce569 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -1,7 +1,6 @@ package core.basesyntax.impl; import core.basesyntax.Storage; -import java.util.Objects; public class StorageImpl implements Storage { private static final int MAX_STORAGE_SIZE = 10; @@ -18,7 +17,7 @@ public StorageImpl() { @Override public void put(K key, V value) { for (int i = 0; i < size; i++) { - if (Objects.equals(key,keys[i])) { + if (keys[i] == key) { values[i] = value; return; } @@ -34,7 +33,7 @@ public void put(K key, V value) { @Override public V get(K key) { for (int i = 0; i < size; i++) { - if (Objects.equals(key, keys[i])) { + if (keys[i] == key) { return values[i]; } } From 07b7b00e7f6472aae198263de340b63fc23ec2a0 Mon Sep 17 00:00:00 2001 From: Brynkiewicz Date: Thu, 26 Mar 2026 14:07:12 +0100 Subject: [PATCH 4/5] Storage - comparisation method change; null checking --- src/main/java/core/basesyntax/impl/StorageImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index a839ce569..04212c499 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -16,6 +16,10 @@ public StorageImpl() { @Override public void put(K key, V value) { + if (key == null || value == null) { + throw new NullPointerException("Key or value cannot be null."); + } + for (int i = 0; i < size; i++) { if (keys[i] == key) { values[i] = value; From 88e810cb96a0372242953353c62ce5705a26c02f Mon Sep 17 00:00:00 2001 From: Michal Brynkiewicz Date: Mon, 4 May 2026 15:11:42 +0200 Subject: [PATCH 5/5] null keys checking changed in put and get method --- src/main/java/core/basesyntax/impl/StorageImpl.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index 04212c499..db3697ca6 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -16,12 +16,9 @@ public StorageImpl() { @Override public void put(K key, V value) { - if (key == null || value == null) { - throw new NullPointerException("Key or value cannot be null."); - } for (int i = 0; i < size; i++) { - if (keys[i] == key) { + if (keys[i] == null ? key == null : keys[i].equals(key)) { values[i] = value; return; } @@ -37,7 +34,7 @@ public void put(K key, V value) { @Override public V get(K key) { for (int i = 0; i < size; i++) { - if (keys[i] == key) { + if (keys[i] == null ? key == null : keys[i].equals(key)) { return values[i]; } }