diff --git a/src/main/java/core/basesyntax/impl/Main.java b/src/main/java/core/basesyntax/impl/Main.java new file mode 100644 index 000000000..f7ebbce54 --- /dev/null +++ b/src/main/java/core/basesyntax/impl/Main.java @@ -0,0 +1,17 @@ +package core.basesyntax.impl; + +import core.basesyntax.Storage; + +public class Main extends StorageImpl { + public static void main(String[] args) { + + Storage storage = new StorageImpl<>(); + storage.put(1991, "Independence of Ukraine"); + + String value = storage.get(1991); + int size = storage.size(); + + System.out.println("Value: " + value); + System.out.println("Size: " + size); + } +} diff --git a/src/main/java/core/basesyntax/impl/StorageImpl.java b/src/main/java/core/basesyntax/impl/StorageImpl.java index 455a7b080..ba8a3ffc4 100644 --- a/src/main/java/core/basesyntax/impl/StorageImpl.java +++ b/src/main/java/core/basesyntax/impl/StorageImpl.java @@ -3,17 +3,47 @@ import core.basesyntax.Storage; public class StorageImpl implements Storage { + public static final int MAX_Keys_And_Values = 10; + protected final K[] keys; + protected final V[] values; + private int size = 0; + + public StorageImpl() { + this.keys = (K[]) new Object[MAX_Keys_And_Values]; + this.values = (V[]) new Object[MAX_Keys_And_Values]; + } + @Override public void put(K key, V value) { + for (int i = 0; i < size; i++) { + if (keys[i] == null && key == null) { + values[i] = value; + return; + } + if (keys[i] != null && keys[i].equals(key)) { + values[i] = value; + return; + } + } + keys[size] = key; + values[size] = value; + size++; } @Override public V get(K key) { + for (int i = 0; i < keys.length; i++) { + if (keys[i] == null && key == null) { + return values[i]; + } else if (keys[i] != null && keys[i].equals(key)) { + return values[i]; + } + } return null; } @Override public int size() { - return -1; + return this.size; } }