2016-04-07 21 views
0

PhoneBookEntryクラスのコンストラクタから作成されたいくつかの名前と電話番号をPhoneBookクラスのArrayListの内部に格納してから印刷できるようにしようとしています配列リストArrayList.add()がArrayListに追加されない

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)); 
    } 
} 
} 

電流出力:

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

あなたの本「ArrayList」はどこに宣言されていますか? – Logan

+0

二次的には、集中化された 'Map'(たぶん' TreeMap')を使うほうがずっと簡単でしょう。電話番号(おそらく 'PhoneNumber':Pと呼ばれる)の新しいラッパーを構築する方が簡単だと思わない限り、' 'でパラメータ化を利用してください – ifly6

+0

投稿を更新しました、ごめんなさい – Cammy

答えて

3

それぞれをそれぞれPhoneBookEntryに作成し、1つのエントリでそれぞれ5つのリストになるからです。

あなたのコードは、おそらくより

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

ありがとう。私はそれを完全に忘れてしまった。 – Cammy

0

はなぜ、少なくとも1件の電話帳を作成し、そこに電話帳エントリの配列リストを持って、その後、ちょうど電話帳にエントリを追加しませんか?

1

はあなたがすべてのPhoneBookEntryで新しいPhoneBookを作成しているように見えるはずです。

PhoneBook bookフィールドを作成します。

public PhoneBook book = new PhoneBook();

と単純には、すべての新しいPhoneBookEntryオブジェクトとそれにそれぞれの新しいエントリを追加します。または、単にあなたのPhoneBook bookをメインに作成してください。

関連する問題