Fragen über ArrayList

Annalena123

Aktives Mitglied
Hallo ,ich muss die Methoden fügeEin ,entferne ,enthält und einen weiteren Konstruktor implementieren, der Angabe einer Anfangskapazität für die Listenimplementierung erlaubt.! ich habe Probleme beim Einfügen und entfernen und die ArrayList muss beim Erreichen der maximalen Kapazität sinnvoll vergrößert werden , um zusätzliche Elemente aufnehmen zu können. Kann jemand bitte meinen Code überprüfen und mir weiter helfen ?
Java:
import java.util.Arrays;
class ArrayTitelListe implements TitelListe
{
    // In diesem Array sind die Referenzen auf die enthaltenen Titel abgelegt.
    // Die Laenge des Arrays entspricht der Kapazitaet der Liste und muss daher nicht separat gespeichert werden.
    private Titel[] _titelArray;

    // Die Kardinalitaet der Liste.
    private int _anzahlTitel;

    // Die Anfangskapazitaet einer jeden neuen Liste.
    private static final int ANFANGSKAPAZITAET = 10;

    /* * Initialisiert eine neue <code>ArrayTitelListe</code>.*/
   
    public ArrayTitelListe()
    {
        _titelArray = new Titel[ANFANGSKAPAZITAET];
        _anzahlTitel = 0; //bestimmt Wie viele Elemente in ArrayList gespeichert sind
    }
/**die AnfangsKapazität wird selbst bestimmt.
*/
    public ArrayTitelListe(int capacity)
    {
        _titelArray = new Titel[capacity];
        _anzahlTitel = 0;
    }

    /**
     * Fuege einen Titel an der Position <code>position</code> in die Titelliste
     * ein. Alle folgenden Eintraege werden um eine Position verschoben.
     * Wenn <code>position</code> gleich der Laenge der Titelliste ist, dann
     * fuege den <code>titel</code> am Ende an.
     *
     * @param titel Der einzufuegende Titel (darf nicht null sein).
     * @param position Die Position, an welcher der Titel eingefuegt werden soll.
     */
    public void fuegeEin(Titel titel, int position)
    {
        darfNichtNullSein(titel);
        mussGueltigeEinfuegepositionSein(position);

        // TODO fuegeEin
        if(_anzahlTitel<_titelArray.length-1)
        for( int i=_titelArray.length-1; i> position;i--)
         {
            _titelArray[i]=_titelArray[i-1];

         }
   
        else
            {
            int newSize = 20; // resize to 20 elements
         _titelArray = Arrays.copyOf(_titelArray, newSize);
         for( int i=_titelArray.length-1; i> position;i--)
         {
            _titelArray[i]=_titelArray[i-1];

         }
       
            }
        _titelArray[position]=titel;
         _anzahlTitel++;
   
 
    }

    /**
     * Pruefe, ob ein Titel in der Liste enthalten ist.
     *
     * @param titel Der Titel, welcher in der Liste gesucht werden soll.
     * @return <code>true</code> wenn der Titel in der Liste ist,
     *         ansonsten <code>false</code>.
     */
    public boolean enthaelt(Titel titel)
    {
        darfNichtNullSein(titel);

        // TODO enthaelt
         for(Titel t : _titelArray)
        {
            if(t.equals(titel))
            {
                return true;
            }
       
        }
        return false;
    }


    /**
     * Entferne den Titel an der angegebenen Position. Alle folgenden Eintraege
     * werden um eine Position verschoben.
     *
     * @param position Die Position des Titels, der entfernt werden soll.
     */
    public void entferne(int position)
    {
        mussGueltigePositionSein(position);

        // TODO entferne
        for(int i=position; i<_anzahlTitel-1;++i)
        {
            _titelArray[i]=_titelArray[i-1];
       
        }
         _titelArray[_anzahlTitel - 1] = null;
        _anzahlTitel  --;
 
 
    }
 
Zuletzt bearbeitet:

Neue Themen


Oben