diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index 455a7b080..e9cf10d9c 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -1,19 +1,48 @@ package core.basesyntax.impl; import core.basesyntax.Storage; +import java.util.Objects; public class StorageImpl implements Storage { + private static final int MAX_CAPACITY = 10; + private K[] keys; + private V[] values; + private int size; + + @SuppressWarnings("unchecked") + public StorageImpl() { + keys = (K[]) new Object[MAX_CAPACITY]; + values = (V[]) new Object[MAX_CAPACITY]; + size = 0; + } + @Override public void put(K key, V value) { + for (int i = 0; i < size; i++) { + if (Objects.equals(keys[i], key)) { + values[i] = value; + return; + } + } + if (size < MAX_CAPACITY) { + 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 this.size; } }