2016-04-07 16 views
0

Ich versuche, einige Namen und Telefonnummern, die vom Konstruktor der PhoneBookEntry-Klasse erstellt wurden, hinzuzufügen, sie innerhalb einer ArrayList innerhalb der PhoneBook-Klasse zu speichern und dann auszudrucken die Array-Liste.ArrayList.add() fügt ArrayList nicht hinzu

public class Application { 
    public static void main(String[] args) { 
    PhoneBookEntry name1 = new PhoneBookEntry("Cameron", "1-425-415-7157"); 
    PhoneBookEntry name2 = new PhoneBookEntry("Mike", "1-748-142-2341"); 
    PhoneBookEntry name3 = new PhoneBookEntry("Riles", "1-471-648-1782"); 
    PhoneBookEntry name4 = new PhoneBookEntry("Tom", "1-427-145-6471"); 
    PhoneBookEntry name5 = new PhoneBookEntry("Billy", "1-718-545-5715"); 
    } 
} 


import java.util.ArrayList; 

public class PhoneBookEntry { 

PhoneBook book = new PhoneBook(); 

public PhoneBookEntry(String name, String phoneNumber) { 
    book.add(name, phoneNumber); 
} 

public void printEntries() { 
    for(int i = 0; i < names.size(); i++) { 
     System.out.println("Name #"+(i + 1)+": "+names.get(i)); 
    } 
} 

} 


import java.util.ArrayList; 

public class PhoneBook { 
    ArrayList<String> names = new ArrayList<String>(); 
    ArrayList<String> phoneNumbers = new ArrayList<String>(); 

public void add(String name, String phoneNumber) { 
    names.add(name); 
    System.out.println(name + " added to the arraylist!"); 
    System.out.println(names.size()); 
    phoneNumbers.add(phoneNumber); 
} 

public void print() { 
    for (int i = 0; i < names.size(); i++) { 
     System.out.println("Name #" + (i + 1) + ": " + names.get(i)); 
    } 
    for (int i = 0; i < phoneNumbers.size(); i++) { 
     System.out.println("Phone Number #" + (i + 1) + ": " + phoneNumbers.get(i)); 
    } 
} 
} 

Stromausgang:

Cameron added to the arraylist! 
1 
Mike added to the arraylist! 
1 
Riles added to the arraylist! 
1 
Tom added to the arraylist! 
1 
Billy added to the arraylist! 
1 
+1

Wo wird Ihr Buch 'ArrayList' deklariert? – Logan

+0

Zweitens wäre es viel einfacher, nur eine zentralisierte 'Map' (wahrscheinlich' TreeMap') zu verwenden. Nutzen Sie die Parametrisierung mit '', es sei denn, Sie würden es einfacher finden, einen neuen Wrapper für Telefonnummern zu erstellen (wahrscheinlich 'PhoneNumber': P) – ifly6

+0

Ich habe den Beitrag aktualisiert, sorry – Cammy

Antwort

3

Es ist, weil Sie eine neue PhoneBook für jede PhoneBookEntry erstellen, die mit fünf Listen mit jeweils einem Eintrag endet.

Der Code sollte wahrscheinlich aussehen

public static void main(String[] args) { 
    PhoneBook book = new PhoneBook(); 
    book.add("Cameron", "1-425-415-7157"); 
    book.add("Mike", "1-748-142-2341"); 
} 
+0

Vielen Dank. Das habe ich total vergessen. – Cammy

0

Warum nicht ein Telefonbuch, die Array Liste der Telefonbucheinträge in dort, und dann nur Einträge im Telefonbuch hinzufügen?

1

Sie einen neuen PhoneBook mit jedem PhoneBookEntry zu schaffen.

Fabrikat PhoneBook book ein Feld:

public PhoneBook book = new PhoneBook();

und fügen Sie einfach jeden neuen Eintrag in die sie mit jedem neuen PhoneBookEntry Objekt. Oder erstellen Sie einfach Ihre PhoneBook book in der Hauptsache.

Verwandte Themen