From 2a0120a0b5bf36aeef622cf0d148037fed16c533 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Sat, 18 Jan 2025 20:26:12 +0200 Subject: [PATCH] first try --- .../core/basesyntax/impl/StorageImpl.java | 34 ++++++++++++++++++- 1 file changed, 33 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..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; } }