From 286d2049ca1b02aa5def58f36e9a67cd76734a31 Mon Sep 17 00:00:00 2001 From: Andrii Hryniuk Date: Sun, 10 May 2026 20:01:40 +0200 Subject: [PATCH 1/3] First solution --- .../core/basesyntax/impl/StorageImpl.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index 455a7b080..3a0be4def 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -3,17 +3,55 @@ import core.basesyntax.Storage; public class StorageImpl implements Storage { + + public static final int MAX_SIZE = 10; + private Object[] keys = new Object[MAX_SIZE]; + private Object[] values = new Object[MAX_SIZE]; + @Override public void put(K key, V value) { + for (int i = 0; i < keys.length; i++) { + if (keys[i] != null && keys[i].equals(key)) { + values[i] = value; + return; + } + if (keys[i] == key) { + values[i] = value; + return; + } + if (keys[i] == null && values[i] == null) { + values[i] = value; + keys[i] = key; + return; + } + + } } @Override public V get(K key) { + + for (int i = 0; i < keys.length; i++) { + if (keys[i] != null && keys[i].equals(key)) { + return (V) values[i]; + } + if (keys[i] == null && key == null) { + return (V) values[i]; + } + } return null; } @Override public int size() { - return -1; + int size = 0; + + for (int i = 0; i < values.length; i++) { + if (values[i] != null) { + size++; + } + } + return size; } + } From 7eb15233c073ac4601a20cedd0da2b604589d06e Mon Sep 17 00:00:00 2001 From: Andrii Hryniuk Date: Sun, 10 May 2026 20:27:00 +0200 Subject: [PATCH 2/3] added fixed after review --- .../core/basesyntax/impl/StorageImpl.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index 3a0be4def..dbc857c0b 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -3,23 +3,24 @@ import core.basesyntax.Storage; public class StorageImpl implements Storage { - public static final int MAX_SIZE = 10; - private Object[] keys = new Object[MAX_SIZE]; - private Object[] values = new Object[MAX_SIZE]; + private Object[] keys; + private Object[] values; + + public StorageImpl() { + keys = new Object[MAX_SIZE]; + values = new Object[MAX_SIZE]; + } @Override public void put(K key, V value) { for (int i = 0; i < keys.length; i++) { - if (keys[i] != null && keys[i].equals(key)) { - values[i] = value; - return; - } - if (keys[i] == key) { + if (keys[i] != null && keys[i].equals(key) || keys[i] == key) { values[i] = value; return; } - if (keys[i] == null && values[i] == null) { + + if (values[i] == null) { values[i] = value; keys[i] = key; return; @@ -30,12 +31,11 @@ public void put(K key, V value) { @Override public V get(K key) { - for (int i = 0; i < keys.length; i++) { if (keys[i] != null && keys[i].equals(key)) { return (V) values[i]; } - if (keys[i] == null && key == null) { + if (keys[i] == key) { return (V) values[i]; } } @@ -45,7 +45,6 @@ public V get(K key) { @Override public int size() { int size = 0; - for (int i = 0; i < values.length; i++) { if (values[i] != null) { size++; From 51a9550336537e289043ce1d8c58c4d16e8f9c66 Mon Sep 17 00:00:00 2001 From: Andrii Hryniuk Date: Mon, 11 May 2026 15:00:23 +0200 Subject: [PATCH 3/3] added fixed after review v2 --- src/main/java/core/basesyntax/impl/StorageImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index dbc857c0b..6cc420649 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -19,7 +19,9 @@ public void put(K key, V value) { values[i] = value; return; } - + /*Шукає вільний слот для значення коли ключ не збігається з жодним іншим, + перевіряємо values[i] + перевіряємо values[i], тому що може бути значення з ключем null*/ if (values[i] == null) { values[i] = value; keys[i] = key;