Anfänger-Übung für Arrays

KnoLLe

Mitglied
Hallo,
ich bearbeite gerade eine (freiwillige) Übung zu Arrays. Ich fasse diese mal kurz zusammen:

-Ein Adressbuch-Objekt das in einem Array mehrere Person-Objekte (die haben erstmal nur Name/Vorname) speichern soll, wobei die Anfangsgröße des Arrays als Parameter des Konstruktors übergeben wird.

-Eine Methode addPerson(), die ein Person an die nächste freie Stelle schreibt. Um diese Stelle zu ermitteln, bekommt das Adressbuch ein Attribut, welches den Index des nächsten noch unbelegten Array-Elements repräsentiert. Dieses Attribut muss natürlich bei Veränderungen aktualisiert werden.

-Prüfen ob der Array bereits voll ist. Wenn ja, soll ein neuer Array doppelter Größe angelegt und der alte Array dort hineinkopiert werden. Dieses Verdoppeln soll in eine eigene private Methode ausgelagert werden.

-Methode getEntriesAsString().
Die erste Zeile enthält eine Information über die Anzahl der Einträge und die aktuelle Kapazität des Adressbuchs,also etwa "3 of 10". Die anderen Zeilen bestehen aus den Rückgabewerten von Aufrufen der Methode getPersonAsString() auf den einzelnen Personen.

Mein bisheriges Programm:

Java:
package AddressBook;

public class AddressBookTest {
    public static void main(String[] args) {
        // create person
        
        Person p1 = new Person("Name1", "Nachname1");
        Person p2 = new Person("Name2", "Nachname2");
        Person p3 = new Person("Name3", "Nachname3");
        Person p4 = new Person("Name4", "Nachname4");
        Person p5 = new Person("Name5", "Nachname5");

        // create addressbook and fill in person
        ArrayAddressBook book = new ArrayAddressBook(2);
        book.addPerson(p1);
        book.addPerson(p2);
        book.addPerson(p3);
        book.addPerson(p4);
        book.addPerson(p5);        

        // fetch person from book and print it
        book.getEntriesofString();
        
    }
}

Java:
package AddressBook;

/**
 *
 * @author Julian
 */
public class Person {
    String vorname;
    String nachname;

    Person(String vorname, String nachname){
        this.vorname = vorname;
        this.nachname = nachname;
    }

    String getPersonAsString(){
          return vorname+" "+nachname;
    }

}

Java:
package AddressBook;

public class ArrayAddressBook {
   int count;
   Person[] persons;

    ArrayAddressBook(int groesse){
        persons = new Person[groesse];
    }

    void addPerson(Person p){        
        if (count == persons.length)
            verdopple();

        persons[count] = p;
        count++;       
    }

    void verdopple(){
        Person[] doppelArray = new Person[persons.length*2];
        
        for (int i =0; i < persons.length;i++)
            doppelArray[i] = persons[i];
        persons = doppelArray;
    }

    void getEntriesofString(){
        System.out.println(count+" of "+(persons.length));
        for(Person p : persons)
            System.out.println(p.getPersonAsString());
    }
}
Problem: Mit 2 Personen gehts, bei 4 wird korrekt verdoppelt, bei mehreren erhalte ich ne Exception:
Code:
5 of 8
Exception in thread "main" java.lang.NullPointerException
Name1 Nachname1
Name2 Nachname2
        at AddressBook.ArrayAddressBook.getEntriesofString(ArrayAddressBook.java:30)
Name3 Nachname3
        at AddressBook.AddressBookTest.main(AddressBookTest.java:27)
Name4 Nachname4
Name5 Nachname5

Seltsamerweise spuckt er sogar bei z.B. 18 von 32 keine weiteren außer die an der Stelle oben aus. Es muss eine Fehler nach den ersten 2/3 Elementen aber ich verstehs einfach nicht...

Wäre toll, wen ihr trotz des Kilometer langem Posts, mir etwas helfen könntet :)
Danke!
 

eRaaaa

Top Contributor
Das Problem ist die Methode [c]getEntriesofString()[/c]
Du iterierst dort über das gesamte Array. Das Array ist ja aber nie wirklich komplett voll belegt, daher iterierst du auch an eine Stelle die eben [c]null[/c] ist, wenn du dann die Methode [c]p.getPersonAsString()[/c] aufrufen willst, kracht es :)

Frage also ab ob p == null ist, und beende dann die Schleife o.ä. ! (bzw du kennst ja count, also iteriere auch nur bis dahin !)
 

KnoLLe

Mitglied
Erstmal danke für die super schnelle Antwort :)
Über den Fehler ärgere ich mich wirklich, den Rest habe ich relativ locker erledigt und dann sowas...hatte aber auch ein Verständnisfehler bzgl der for:each Schleife!

Jetzt kann's weiter gehen :rtfm:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
H Threads Anfänger Java Basics - Anfänger-Themen 17
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
T Roulette für Anfänger Java Basics - Anfänger-Themen 7
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
K Java Anfänger Java Basics - Anfänger-Themen 5
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
P Übungsaufgaben für Anfänger? Java Basics - Anfänger-Themen 2
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
CT9288 Mini Anfänger-Problem mit loops, statements und ; Java Basics - Anfänger-Themen 4
F Hilfe, bin Anfänger! Java Basics - Anfänger-Themen 4
R Erste Schritte Materialien für Java-Anfänger Java Basics - Anfänger-Themen 7
Koookie Kleines Frage - Antwort Programm (Anfänger) Java Basics - Anfänger-Themen 5
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
F Abrechnungsprogramm erstellen Student (Anfänger) Java Basics - Anfänger-Themen 2
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
J Musikplayer zu schwer für Anfänger? Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
Textsurfer Methoden Anfänger * Java Basics - Anfänger-Themen 5
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
C verwirrter Anfänger Java Basics - Anfänger-Themen 6
L Verzinsungsprogramm (Java-Anfänger) Java Basics - Anfänger-Themen 3
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
H Methoden Bluej Anfänger Java Basics - Anfänger-Themen 13
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2
D Anfänger-Problem mit dem HalloWelt-Programm Java Basics - Anfänger-Themen 5
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
J Anfänger hat Problem mit seinen Beet Java Basics - Anfänger-Themen 12
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
N Anfänger Problem Java Basics - Anfänger-Themen 4
GoodGuy [Anfänger] Kann mal wer drüber gucken? Java Basics - Anfänger-Themen 3
R Erste Schritte Anfänger Probleme bei AnimationDrawable Java Basics - Anfänger-Themen 0
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taxiwarteschlange - Anfänger Java Basics - Anfänger-Themen 2
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
I Java, Application, Eclipse (Anfänger) Java Basics - Anfänger-Themen 1
M Java Anfänger - Video Tutorial Reihe (DEUTSCH) Java Basics - Anfänger-Themen 11
C Anfänger: Array + Klasse Java Basics - Anfänger-Themen 5
S OOP Uhrenanzeige programmieren, Achtung Anfänger! Java Basics - Anfänger-Themen 9
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
I totaler Anfänger braucht Hilfe Java Basics - Anfänger-Themen 8
I Erste Schritte Bücher für Jungedliche[Anfänger] Java Basics - Anfänger-Themen 20
T Hallo anfänger braucht Hilfe :D Java Basics - Anfänger-Themen 7
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
J Hilfe für Anfänger Java Basics - Anfänger-Themen 8
E OOP Methode an andere Methode übergeben / OOP Anfänger Java Basics - Anfänger-Themen 4
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
H MergeSort (für Anfänger ) Java Basics - Anfänger-Themen 9
X Projekt Java Anfänger Java Basics - Anfänger-Themen 28
C Fehlersuche Adressbuch *Anfänger* Java Basics - Anfänger-Themen 5
C Anfänger braucht Hilfe bei Schularbeit Java Basics - Anfänger-Themen 3
J Erste Schritte Hilfe bei absolutem Anfänger-Projekt Java Basics - Anfänger-Themen 4
F Anfänger braucht Hilfe Java Basics - Anfänger-Themen 24
A Erste Schritte Übungen für Anfänger Java Basics - Anfänger-Themen 31
M Sieb des Eratosthenes für Anfänger Java Basics - Anfänger-Themen 10
M Tipps für einen Java-Anfänger Java Basics - Anfänger-Themen 5
S Anfänger Aufgaben Java Basics - Anfänger-Themen 6
G Anfänger-Errors und Fragen Java Basics - Anfänger-Themen 22
S Java für Anfänger: Probleme mit read() Java Basics - Anfänger-Themen 20
P [Anfänger] DiceGame Aufagbe Java Basics - Anfänger-Themen 23
C Input/Output Anfänger Array-Verständnis Frage Java Basics - Anfänger-Themen 7
W Erste Schritte OOP-Lektüre für Anfänger/Umsteiger von Clipper auf Java Java Basics - Anfänger-Themen 6
J Welches Java-Videotutorial für Anfänger empfehlenswert? Java Basics - Anfänger-Themen 7
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 3
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 2
P Java anfänger tutorial gesucht Java Basics - Anfänger-Themen 12
P Viereck mit Sterne - Anfänger bittet um Kritik und Anregung Java Basics - Anfänger-Themen 11
B Java für Anfänger Java Basics - Anfänger-Themen 7
T Bin Anfänger ... das Thema auch ? Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben