2013-10-05 65 views
0

我有以下類從arraylist java中獲取值?

public class Patient implements Serializable { 

    private int id; 

    private String name; 

    private String desc; 
    public Patient(int id, String name, String desc) { 

    this.id = id; 
    this.name = name; 
    this.desc=desc; 
    } 

然後在這個類下面的getter和setter方法。

聲明列表

list.add(new Patient(id++, name.getText(), disDesc.getText()) 

現在的ArrayList

ArrayList<Patient> list = new ArrayList<Patient>(); 

增加運行時間數據我想讀取存儲在列表 我如何能做到這一點的元素?

System.out.println(list.get(0)); 

我用這一點,但它返回類

+0

大多數IDE的如Eclipse和IntelliJ將能夠爲您的類自動生成toString覆蓋。我至少將它們用作模板。 –

回答

6

你必須重載的PatienttoString()方法的目的地址。在那裏,您將返回要顯示的Patient對象的所有信息。

例子:(我個人最喜歡的)

private static final String SEPARATOR = ", "; 

@Override 
public String toString() 
{ 
     StringBuilder builder = new StringBuilder(); 

     builder.append("ID: ").append(id).append(SEPARATOR); 
     builder.append("Name: ").append(name).append(SEPARATOR); 
     builder.append("Desc: ").append(desc); 

     return builder.toString(); 
} 

例2:

@Override 
public String toString() 
{ 
     return "ID: " + id + ", Name: " + name + ", Desc: " + desc; 
} 

例3:

@Override 
public String toString() 
{ 
     return MessageFormat.format("ID: {0}, Name: {1}, Desc: {2}", id, name, desc); 
} 

二者必選其一之一。這是一個偏好問題。

+2

爲什麼不使用:'return「ID:」+ id +「|名稱:」+ name +「| Desc:」+ desc;'?更容易閱讀IMO,同樣高效。或者,使用'String.format'。 –

+4

@JonSkeet據我所知,'StringBuilder'比連接字符串更高效。我錯了嗎?我養成了使用StringBuilder的習慣。 – GGrec

+0

喜歡你的個人最愛 – WISHY

2

你要投的元素,

((Patient) list.get(0)).getName(); 

並且必須添加一個公共的getter方法,您Patient類。