Eigene Collection mit Hilfe eines Arrays



  • Hallo zusammen,

    ich habe die Aufgabe, eine eigene Collection in Java zu schreiben. Diese Collection soll soweit generisch sein, dass eine Instanz dieser Collection einen beliebigen Typ von Objekten aufnehmen kann (aber nicht beliebige Typen in derselben Instanz). ZB. soll also die Instanz A der Collection eine Sammlung von Objekten der Klasse X aufnehmen, während die Instanz B der Collection eine Sammlung von Objekten der Klasse Y aufnehmen kann.

    Eine weitere Anforderung an die Collection ist, dass sie keine dynamisch erzeugten Speicher beinhalten darf (also keine Linked List oder dgl.). Sie muss mit Hilfe eines Arrays implementiert werden.

    Ich dachte zuerst an Java Generics, dabei musste ich aber feststellen, dass sich diese mit Arrays nicht sehr gut vertragen.

    Nun bin ich etwas ratlos, da ich kein Java-Profi bin. Unter C++ war dies mit Templates einfach zu bewerkstelligen. Gibt es etwas Vergleichbares nicht auch in Java?

    Danke für jede Idee und Hilfe!
    Gruss, Matthias



  • Nimm einfach ein Array von Object. Das kannst Du dann nach (E[]) casten, wobei E der generische Typ der Collection ist.



  • Hi, danke für deine Hilfe. Leider kann ich mir als nicht-Java-Profi das nicht genau vorstellen, wie du das meinst. Könntest du mir bitte ein Mini-Bsp. schreiben, was genau du meinst?

    Vielen Dank!



  • stark verkürzt, aber z.B. sowas:

    public class Example<T>{
    
    protected Object[] array = new Object[5];
    
    public T get(int n){
    return (T) array[n];
    }
    


  • alles klar, dann werde ich das mal so probieren.
    danke!



  • Ich meinte es eher so:

    public class Example<T>{
    
    protected T[] array = (T[])new Object[5];
    
    public T get(int n){
    return array[n];
    }
    

    Schau Dir den Quelltext von java.util.ArrayList an. Das ist genau das, was Du suchst.


Anmelden zum Antworten