Dynamiczne dodawanie/usuwanie obiektow bez wbudowanych bibliotek

0

Witam,

dostalem pewny problem do rozwiazania i jedna z rzeczy nad ktora sie zastanawiam jest jak dynamicznie przechowywac wiele obiektow danej klasy, bez kolejek/list/stosów z dodatkowych bibliotek.

np
mam klase Kient z konstruktorem:
Klient(int ID, int numer, ...){
...
}

I w Main'ie gdzieś tam sa metody
dodajNowegoKlienta(id,numer, ...) => new Klient(id, numer,...)
usunKlienta(id)

i powiedzmy ktos moze sobie dodawac tych klientow ile wlezie + w dowolnym momenciew usuwac klienta o danym ID

Jak to przechowywac? Nie moge uzywac ŻADNYCH biblotek dodatkowych. tylko podstawowe petle, tablice etc.
w tablicach musze znac ilosc elementow etc, a jedyne co mi przychodzi do glowy to przepisywanie aktualnej tablicy Klientow o dlugosci X do tempa, zastepywanie jej tablicą o wielkosci X+1. zapelnianie z tempa + dodawanie dodatkowego elementu, ale czuje ze nie tędy droga.

Proszę o pomoc :)

0

W mapie :)
Ba, utwórz sobie interfejs z podstawowymi metodami typu findById, findByName, remove, getAll i zrób implementację tzw. InMemory bazując oczywiście na mapie

0
Rizorz napisał(a):

W mapie :)
Ba, utwórz sobie interfejs z podstawowymi metodami typu findById, findByName, remove, getAll i zrób implementację tzw. InMemory bazując oczywiście na mapie

tj na tablicach samemu sobie zrobic mape? bo nie moge np nic impoertowac z java.util.*, w tym wbudowaną obsluge map:
import java.util.Collection;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

etc, wiec trzeba sobie na tablicach samemu popisac obsluge tego na tablicach?

0

To napisz swoją, tym możesz się wspomóc:
http://www.vogella.com/tutorials/JavaDatastructures/article.html

0

dodam żę JEDYNĄ rzeczą ktorą mogę gdziekolwiek zaimportować jest "java.util.Scanner" tylko dlatego ze input do zadania jest wciągany z pliku ;)

Rizorz napisał(a):

To napisz swoją, tym możesz się wspomóc:
http://www.vogella.com/tutorials/JavaDatastructures/article.html

Dzięki! w takim razie tak spróbuje

@Edit
ale widze ze są tam
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

wiec to tez trzeba ominąć...

0

Przy metodzie keySet na upartego możesz zwrócić tablicę kluczy, wtedy Set i HashSet wylatuje z importów.
Jeszcze kwestia rozmiaru Twojej mapy, tu wychodzi problem tablic - mają stały rozmiar. Dlatego w tym przypadku jak tablica się zapełni, tworzona jest nowa z dwukrotnie większym rozmiarem, a obiekty są do niej przenoszone. Tadam - masz dynamiczną mapę. Nie możesz używać tego importu, napisz własną implementację metody copyOf :)

0

Ja bym stworzył jeszcze taki obiekt pośredni Entry<K, V> i wtedy możesz mieć tablice Entries<K, V>[] . Wersja bardziej hardkorowa: zrób drzewo binarne (jeśli id to int to będzie lajtowo). Będzie wolniejszy zapis, ale czytanie moze być szybsze (to zależy jak powstawiasz elementy)

1 użytkowników online, w tym zalogowanych: 0, gości: 1