SortedUniquePersonList
Antud on klassid Person ja Test. Loo klass SortedUniquePersonList, mis on kollektsioon Person objektide hoidmiseks.
SortedUniquePersonList objektid peavad garanteerima järgmist:
- Hoitavate Person elementide isikukood on selle listi jaoks unikaalne - ei tohi olla võimalik, et kahel samas järjendis oleval Person objektil on sama ID kood.
- Elemendid on kasvavalt järjestatud isikukoodi väärtuse alusel - Person objekt isikukoodiga "1" peab olema väiksema indeksiga kui Person objekt isikukoodiga "2"
- Sisemiselt hoitakse Person objekte Person[] tüüpi massiivis - aga see massiiv ei tohi olla väljastpoolt objekti kättesaadav!
- Sisemise massiivi suurus ei tohi olla rohkem kui 2 korda suurem parasjagu hoitavate elementide arvust. See tähendab, et vastavalt vajadusele peab mõnikord uue suurema või väiksema suurusega massiivi looma ning kõik viited sinna üle kopeerima.
- Elementide lisamisel ja eemaldamisel peavad kõik järgnevad elemendid vastavalt nihkuma.
Person ja Test klassid ning SortedUniquePersonList klassi põhja leiad siit: https://gist.github.com/mbakhoff/9f8aa032656c6acf7696a84cc749b02e Lugege hoolikalt klassi ja meetodite kommentaare ning veenduge, et teie poolt implementeeritav funktsionaalsus vastab kommentaarides väljalubatud nõuetele.
Antud Test klass kontrollib elementaarseid toiminguid, aga ei pruugi kõiki vigu leida. Kontrolli oma kood ise ka üle ja ära jää ainult Test peale lootma.
NB! Siin ülesandes tuleb sisemiselt kasutada just Person[], mitte ArrayList<Person> vms sisseehitatud resizable andmestruktuure. Ülesande eesmärk ongi ehitada ise midagi ArrayList sarnast.
NB! Sisemise Person[] peal ei peaks olema vaja kutsuda sorteerimisalgoritme. Lisa uued elemendid kohe õigesse kohta ja vajadusel tõsta olemasolevaid elemete edasi.