Implementierung einer GenericArrayList in Java

Einleitung

Eine einfache Implementation einer eigenen GenericArrayList in Java bietet der folgende Code.

package arraylist;

interface GenericList<E> {
    E get(int idx);              // retrieve element at index
    void set(E el, int idx);     // overwrite element at index
    int size();                  // get number of elements
    void add(E el);              // append to end
    void remove(int idx);        // remove at index
    void insert(E el, int idx);  // insert at index
}

public class GenericArrayList<E> implements GenericList<E>
{
    E[] content;
    int size;
    public GenericArrayList(int capacity)
    {
        content = (E[]) new Object[capacity];
        size = 0;
    }

    public int size()
    {
        return size;
    }

    public void add(E element)
    {
        if (size == content.length)
        {
            increaseCapacity();
        }
        content[size++] = element;
    }

    private void increaseCapacity()
    {
        E[] tmp = (E[]) new Object[size * 2 + 1];
        for(int i = 0; i < content.length; i++)
{ tmp[i] = content[i]; } content = tmp; } public void remove(int idx) { size--; for(int i = idx; i < size; i++) { content[i] = content[i + 1]; } } public void insert(E d, int idx) { if (size == content.length) { increaseCapacity(); } for(int i = size - 1; i >= idx; i--) { content[i + 1] = content[i]; } content[idx] = d; size++; } public void set(E el, int idx) { content[idx] = el; } public E get(int idx) { return content[idx]; } }

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden .

Pin It on Pinterest

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen