diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index 455a7b080..3d0903a06 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -1,19 +1,51 @@ package core.basesyntax.impl; import core.basesyntax.Storage; +import java.util.Objects; public class StorageImpl implements Storage { + + private static final int MAX_ELEMENTS = 10; + + private Object[] keys; + private Object[] values; + private int size = 0; + + public StorageImpl() { + this.keys = new Object[MAX_ELEMENTS]; + this.values = new Object[MAX_ELEMENTS]; + } + @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_ELEMENTS) { + keys[size] = key; + values[size] = value; + size++; + } else { + throw new RuntimeException("Storage is full"); + } } @Override public V get(K key) { + for (int i = 0; i < size; i++) { + if (Objects.equals(keys[i], key)) { + return (V) values[i]; + } + } return null; } @Override public int size() { - return -1; + return size; } }