From ed0e16194f6b17b88a1753c9335a93fcf4ba335d Mon Sep 17 00:00:00 2001 From: Eugene L Date: Sun, 10 May 2026 20:01:33 +0200 Subject: [PATCH] Solved --- .../core/basesyntax/impl/StorageImpl.java | 32 ++++++++++++++++++- 1 file changed, 31 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..6af24bfbb 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -1,19 +1,49 @@ package core.basesyntax.impl; import core.basesyntax.Storage; +import java.util.Objects; public class StorageImpl implements Storage { + private static final int MAX_STORAGE_CAPACITY = 10; + + private final Object[] keys; + private final Object[] values; + private int size; + + public StorageImpl() { + this.keys = new Object[MAX_STORAGE_CAPACITY]; + this.values = new Object[MAX_STORAGE_CAPACITY]; + } + @Override public void put(K key, V value) { + int index = getValueIndex(key); + if (index == -1) { + keys[size] = key; + values[size] = value; + size++; + return; + } + values[index] = value; } @Override public V get(K key) { - return null; + int index = getValueIndex(key); + return index == -1 ? null : (V) values[index]; } @Override public int size() { + return size; + } + + private int getValueIndex(K key) { + for (int i = 0; i < size; i++) { + if (Objects.equals(keys[i], key)) { + return i; + } + } return -1; } }