今天遇到了個問題,希望高人給解釋一下。
/**
* @(#)ListAddTest.java
*
*
* @author Administrator
* @version 1.00 2007/5/8
*/
import java.util.ArrayList;class Book{ private String id = "";
private String name = ""; public void setid(String id){
this.id = id;
}
public String getid(){
return this.id;
}
public void setname(String name){
this.name = name;
}
public String getname(){
return this.name;
}
}public class ListAddTest { public ListAddTest() {
} public static void main(String[] args) { ListAddTest listAddTest = new ListAddTest();
ArrayList<Book> list = new ArrayList<Book>(); Book book = new Book();
book.setid("001");
book.setname("abc");
list.add(book); book.setid("002");
book.setname("def");
list.add(book); for(int i=0; i<list.size(); i++){ System.out.println("****** id ******:" + list.get(i).getid());
System.out.println("****** name ******:" + list.get(i).getname());
System.out.println("");
}
}
}結果:
****** id ******:002
****** name ******:def****** id ******:002
****** name ******:def問題:
我知道上面的代碼有問題,還需要一個new Book();
可是我只作了一次Book book = new Book();
為什麼list裡有兩條數據。我期望上面程序運行出來的結果是:
****** id ******:002
****** name ******:def
只县示一條數據,即第二个book。
/**
* @(#)ListAddTest.java
*
*
* @author Administrator
* @version 1.00 2007/5/8
*/
import java.util.ArrayList;class Book{ private String id = "";
private String name = ""; public void setid(String id){
this.id = id;
}
public String getid(){
return this.id;
}
public void setname(String name){
this.name = name;
}
public String getname(){
return this.name;
}
}public class ListAddTest { public ListAddTest() {
} public static void main(String[] args) { ListAddTest listAddTest = new ListAddTest();
ArrayList<Book> list = new ArrayList<Book>(); Book book = new Book();
book.setid("001");
book.setname("abc");
list.add(book); book.setid("002");
book.setname("def");
list.add(book); for(int i=0; i<list.size(); i++){ System.out.println("****** id ******:" + list.get(i).getid());
System.out.println("****** name ******:" + list.get(i).getname());
System.out.println("");
}
}
}結果:
****** id ******:002
****** name ******:def****** id ******:002
****** name ******:def問題:
我知道上面的代碼有問題,還需要一個new Book();
可是我只作了一次Book book = new Book();
為什麼list裡有兩條數據。我期望上面程序運行出來的結果是:
****** id ******:002
****** name ******:def
只县示一條數據,即第二个book。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货