diff --git a/src/main/java/core/basesyntax/Main.java b/src/main/java/core/basesyntax/Main.java new file mode 100644 index 000000000..73cfaa7ab --- /dev/null +++ b/src/main/java/core/basesyntax/Main.java @@ -0,0 +1,17 @@ +package core.basesyntax; + +import core.basesyntax.impl.StorageImpl; + +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..db3697ca6 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -3,17 +3,46 @@ import core.basesyntax.Storage; 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 (keys[i] == null ? key == null : keys[i].equals(key)) { + 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 (keys[i] == null ? key == null : keys[i].equals(key)) { + return values[i]; + } + } return null; } @Override public int size() { - return -1; + return size; } }