我正在嘗試做一些非常簡單的事情,但我似乎無法使其工作。我試圖遍歷一個ArrayList,但是當我將結果輸出到終端時,我的for循環總是返回相同的值。對象使用相同的值,即使使用「新」
下面是代碼:
import java.util.*;
public class Contact{
public static ArrayList<Contact> contacts = new ArrayList<Contact>();
public static String name;
public static String phoneNumber;
public static String email;
private static int idCounter = 0;
private final int contactID;
public static void main(String[] args){
Contact bob = new Contact("bob","8493483943","[email protected]");
Contact joe = new Contact("joe","940389439","[email protected]");
ArrayList<Contact> contacts = new ArrayList<Contact>();
contacts.add(bob);
contacts.add(joe);
for (Contact person : contacts) {
System.out.println(person.idCounter);
System.out.println(person.name);
System.out.println(person.phoneNumber);
System.out.println(person.email);
System.out.println();
}
}
public Contact(String name,String phoneNumber,String email){
this.contactID = idCounter++;
this.name = name;
this.phoneNumber = phoneNumber;
this.email = email;
}
}
上面的代碼總是返回此,當我運行代碼:
2
joe
940389439
[email protected]
2
joe
940389439
[email protected]
它返回即使我已經添加了2個不同的對象到相同的信息ArrayList。
當我做這裏面的for循環:
System.out.println(person);
它返回不同的ID的一個聯繫人對象。
我有點困惑,爲什麼這會發生,因爲我假設我沒有在這裏引用相同的變量或對象,或者我在循環中做錯了什麼。
如果有人可以幫我解釋一下會發生什麼,那很好,謝謝!
你的第4行'public static ArrayList contacts = new ArrayList ();''應該被刪除,因爲你要重新聲明它。 –
2014-10-05 00:42:11
@AnubianNoob即使我刪除它,它也會返回相同的值 – Jamaal 2014-10-05 00:43:55