ArrayListe manuell programmieren?

Funktionierdochmal

Bekanntes Mitglied
upload_2019-1-13_14-55-34.png

Guten Tag,
ich habe ein Klassendiagramm gegeben (siehe Bild), das eine Klasse ArrayList darstellt. Nun habe ich gegooglet und herausgefunden, dass man ArrayLists importieren kann und Methoden wie add, remove etc. bereits von Java zur Verfügung gestellt werden können, was ICH in der Aufgabe wohl nicht darf.

Nun verstehe ich nicht genau wie ich vorgehen soll (2 Fragen): Bspw. steht an erster Stelle von ArrayList die Methode +ArrayList(). Heisst das, ich rufe einen Konstruktor auf mit einer leeren Liste "ArrayList eineListe = new ArrayList();" ?
2. Frage: Links, also ausserhalb des Pakets containers ist ein Java.lang.Object. Jemand ne Ahnung was das bedeuten soll?

upload_2019-1-13_14-59-40.png
 

temi

Top Contributor
Meiner Ansicht nach, sollst du eine eigene Klasse "ArrayList" inkl. "Container" und "List" programmieren. Die von Java bereitgestellte "ArrayList" sollst du nicht verwenden.

Deine erste Frage: Es handelt sich um den Konstruktor, den deine ArrayList gemäß Klassendiagramm haben soll.

Zur zweiten Frage: Hier wird festgelegt, dass die Daten in deiner ArrayList vom Typ "Object" sind.
 

temi

Top Contributor
So wäre das grobe Gerüst:

Java:
public abstract class Container {
   // ...
}

public abstract class List extends Container {
   // ...
}

public class ArrayList extends List {
   private Object[] data;

   public ArrayList() {
      // ...
   }
   // ...
}
 
Zuletzt bearbeitet:

needInput

Mitglied
Zu 1) Ja genau du hast einfach einen default Konstruktor
Zu 2) Die Verbindung im Klassendiagramm zu java.lang.object besteht einfach nur, da du anscheinend keine Generische Klasse programmieren sollst, sondern einfach nur intern ein Array mit "Object" Elementen anlegen sollst.
 

Funktionierdochmal

Bekanntes Mitglied
Wäre das für die add-Methode ein guter Ansatz?
Java:
package containers;
public class ArrayList extends List {
   
   
   
    ArrayList eineListe = new ArrayList();
   
    public void add(int pos, Object o) {
       
        eineListe[pos] = o;
       
        //ODER...
       
        for(int i = 0; i < eineListe.length, i++) {
            if(eineListe.length - 1 == i) {
               eineListe[i+1] = element;
            }
        }
    }
 

temi

Top Contributor
Äh, dir ist schon aufgefallen, dass du eben nicht ArrayList zur internen Speicherung der Daten nehmen sollst?

Außerdem steht in deinem Klassendiagramm, dass die Variable "data" heißt. Der Strich davor bedeutet, dass es sich um eine private Variable handelt.

Der Teil vor dem //ODER sieht nicht so verkehrt aus. Du solltest allerdings noch prüfen, dass du die Indexgrenzen nicht verletzt.
 

needInput

Mitglied
Java:
public class ArrayList() {
    private currentElement = 0;
    private Object [] list = new Object[5];

    public void add(Object o){
            if(list.length == currentElement) {
                //Erstelle Array mit mehr Elementen
            }else {
                //fuege Element an der Position von currentElement + 1 hinzu
        }
    }
}
Kleiner Denkanstoß
 

temi

Top Contributor
Java:
public class ArrayList() {
    private currentElement = 0;
    private Object [] list = new Object[5];

    public void add(Object o){
            if(list.length == currentElement) {
                //Erstelle Array mit mehr Elementen
            }else {
                //fuege Element an der Position von currentElement + 1 hinzu
        }
    }
}
Kleiner Denkanstoß

Da ist aber ein Fehler drin: Wenn das letzte Element des Arrays erreicht ist (die If-Bedingung), dann wird zwar das Array vergrößert, aber der else-Zweig mit dem Hinzufügen wird nicht mehr erreicht. Demnach wird auch kein Element hinzugefügt. Außerdem soll laut Aufgabe ein leeres Array erstellt werden, dass beim Hinzufügen immer um eins erweitert wird.
 

temi

Top Contributor
Hatte daran gedacht, dass Element in der if Anweisung hinzuzufügen. Aber man könnte das else natürlich auch weg lassen, hast du recht.
Kann man natürlich tun, aber der Kommentar passt nicht dazu...
Ich habe die Aufgabenstellung nicht ganz genau gelesen aber wenn das Array tatsächlich um immer nur eines erweitert werden soll ist das die Ineffizienteste ArrayList die ich je gesehen habe.
Genau das steht auch in der Aufgabenstellung ;)
 

Funktionierdochmal

Bekanntes Mitglied
Java:
public void add(Object o) {
       
        data[data.length++] = o;
    }

Ich habe daran gedacht, aber ein Fehlter unter length sagt mir "The final field array.length cannot be assigned"
 

temi

Top Contributor
Java:
public void add(Object o) {
      
        data[data.length++] = o;
    }

Ich habe daran gedacht, aber ein Fehlter unter length sagt mir "The final field array.length cannot be assigned"

Die Eigenschaft "length" von Arrays ist als "final" deklariert, d.h. du kannst sie nicht ändern. Ist ja auch logisch, da ein Array eine feste, unveränderliche Länge hat.
 

Funktionierdochmal

Bekanntes Mitglied
Java:
    public int at(Object o) {
        int pos = 0;
        int notFound = -1;
        for (int i = 0; i < data.length; i++) {
            pos++;
            if (o.equals(data[i])) { 
                return pos;
            } else {
                return notFound;
            }
        }
    }
eigentlich müsste ich nach der vorletzten geschweiften Klammer ein returnstatement setzen, die habe ich aber in der If-Schleife gesetzt. Irgendeinen geschickten Umweg, damit die Methode funktioniert?
 

temi

Top Contributor
Java:
    public int at(Object o) {
        for (int i = 0; i < data.length; i++) {
            if (o.equals(data[i])) {
                return i;
            }
       }
       return -1;
   }
 

temi

Top Contributor
Die Methode korrekt schreiben? Überleg mal, was in Deiner Schleife passiert, warum Du eine Schleife hast und was das if (insbesondere der else-Zweig) bewirkt.
Sorry, @mihe7. Ich neige nicht dazu fertige Lösungen zu liefern, aber da seine Lösung zwar umständlich ist, aber im Prinzip richtig, habe ich mal ne Ausnahme gemacht.

Edit: Wobei ich gerade bemerke, dass das "else" zu einem Abbruch nach der ersten Prüfung führt. :oops:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
M Arrayliste mit beliebig vielen Namen befüllen Java Basics - Anfänger-Themen 4
Poppigescorn Arrayliste Mittels Scanner erweitern Java Basics - Anfänger-Themen 6
Poppigescorn Mithilfe einer Arrayliste einen Notenspiegel ausgeben Java Basics - Anfänger-Themen 12
A Objekt in Arrayliste Java Basics - Anfänger-Themen 2
L Arrayliste von hinten nach vorne ausgeben Java Basics - Anfänger-Themen 10
X Methode kann auf ArrayListe nicht zugreifen! Java Basics - Anfänger-Themen 10
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
J Best Practice [Code Verbesserung] TXT einlesen und in Arrayliste speichern Java Basics - Anfänger-Themen 5
S ArrayListe in einer JComboBox anzeigen Java Basics - Anfänger-Themen 10
R Eine Arrayliste in XML abspeichern und laden können Java Basics - Anfänger-Themen 7
P Klasse in Klasse einfügen (arrayliste) Java Basics - Anfänger-Themen 7
O ArrayListe sortieren anhand zweier Parameter Java Basics - Anfänger-Themen 4
A ArrayListe ist nur lokal vorhanden Java Basics - Anfänger-Themen 5
L Input/Output Sortieren Speichern Laden von ArrayListe Java Basics - Anfänger-Themen 14
B ArrayListe in Arraylist Problem Java Basics - Anfänger-Themen 3
N Kopieren einer ArrayListe Java Basics - Anfänger-Themen 3
S ArrayListe??? Java Basics - Anfänger-Themen 2
J Arrayliste in RandomAccesFile speichern Java Basics - Anfänger-Themen 7
D komplizierte Arrayliste sortieren Java Basics - Anfänger-Themen 17
J Arrayliste (gefüllte mit arrays) nach datum sortieren Java Basics - Anfänger-Themen 3
W ArrayListe , Wo ist mein Fehler? Java Basics - Anfänger-Themen 6
K ArrayListe erstellen mit vielen (unendlichen) Weren ??? Java Basics - Anfänger-Themen 29
B Aufgabe: Arrayliste ausgeben, stimmt es so? Java Basics - Anfänger-Themen 8
G Arrayliste mit Objekt anhand von Strings sortieren Java Basics - Anfänger-Themen 8
G ArrayListe vom Server nach Client schicken Java Basics - Anfänger-Themen 17
C ArrayListe ->liste.get Java Basics - Anfänger-Themen 13
ChaosNo1 Arrayliste global nutzen? Java Basics - Anfänger-Themen 4
C Elemente aus Arrayliste ausgeben Java Basics - Anfänger-Themen 6
S Arrayliste füllen Java Basics - Anfänger-Themen 4
O ArrayListe mit Objekten Java Basics - Anfänger-Themen 2
B ArrayListe . WIE AUSLESEN ? Java Basics - Anfänger-Themen 5
G ArrayListe Java Basics - Anfänger-Themen 14
T Objekte aus Datei in ArrayListe werfen Java Basics - Anfänger-Themen 3
F Warum muss ich ein SSL cert immer manuell hinzufügen? Java Basics - Anfänger-Themen 46
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
E Stream closed - Obwohl nicht manuell geschlossen! Java Basics - Anfänger-Themen 0
J Array manuell vom User eingeben, Zeilenweise Java Basics - Anfänger-Themen 2
D Objekte manuell in GridLayout einfügen Java Basics - Anfänger-Themen 4
G Events manuell aulösen Java Basics - Anfänger-Themen 3
P Item in ComboBox manuell hinzufügen? Java Basics - Anfänger-Themen 3
H 2DArray manuell dynamisch erweitern Java Basics - Anfänger-Themen 7
G Timer manuell auslösen? Java Basics - Anfänger-Themen 3
G Spaltenbreite manuell anpassen bei einer JTable (wie bei.) Java Basics - Anfänger-Themen 13
ff Java-Programm manuell ausfuehren Java Basics - Anfänger-Themen 9
V paint()-methode manuell aufrufen? kein autostart erwuenscht Java Basics - Anfänger-Themen 3
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
D Programmieren nach UML Java Basics - Anfänger-Themen 2
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
B Überweisung programmieren Java Basics - Anfänger-Themen 7
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
thor_norsk Fernseher programmieren mit Java Java Basics - Anfänger-Themen 4
M Jenga Regeln Java Programmieren Java Basics - Anfänger-Themen 1
M Ressourcensparend programmieren Java Basics - Anfänger-Themen 3
brypa Wie Programmieren lernen? Java Basics - Anfänger-Themen 15
G Spielerwechsel programmieren Java Basics - Anfänger-Themen 1
J Solitär (Brettspiel) programmieren Java Basics - Anfänger-Themen 3
H Objektorientiertes Programmieren Java Basics - Anfänger-Themen 4
K 12- Stunden Konverter Programmieren Java Basics - Anfänger-Themen 1
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
L Zahlenspiel programmieren Java Basics - Anfänger-Themen 1
TimoN11 Automat programmieren Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
N Ufospiel programmieren Java Basics - Anfänger-Themen 13
KogoroMori21 Vorbereitung auf die Programmieren Klausur vom ersten Semester Java Basics - Anfänger-Themen 4
Drinkerbell Erste Schritte Zu blöd zum Programmieren? Java Basics - Anfänger-Themen 9
G Stack programmieren Java Basics - Anfänger-Themen 6
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
G Bruchrechner programmieren Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
D Schachbrett (8x8) programmieren Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
S Kreisberechnung3 Buch: Programmieren lernen mit Java von Hans-Peter Habelitz Java Basics - Anfänger-Themen 39
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
K Java programmieren Java Basics - Anfänger-Themen 6
V_Fynn03 Kontrolle des Quelltextes (Bank programmieren)(GUI) Java Basics - Anfänger-Themen 6
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
N Ticketautomat programmieren Java Basics - Anfänger-Themen 63
M Rechner programmieren Java Basics - Anfänger-Themen 3
V_Fynn03 Java Bruchrechner programmieren Java Basics - Anfänger-Themen 13
J Java Suchfunktion Programmieren Java Basics - Anfänger-Themen 1
L Erste Schritte Bin ich "zu dumm" oder nicht geeignet zum Programmieren? Java Basics - Anfänger-Themen 3
U Ist jemad gut in programmieren (JAVA) und kann mir helfen? Java Basics - Anfänger-Themen 1
H Uhr programmieren Java Basics - Anfänger-Themen 10
T Schalter programmieren Java Basics - Anfänger-Themen 17
S Ampel Programmieren Java Basics - Anfänger-Themen 5
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben