Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从arraylist java获取值?_Java_Arraylist - Fatal编程技术网

从arraylist java获取值?

从arraylist java获取值?,java,arraylist,Java,Arraylist,我有以下课程 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; } 然后是

我有以下课程

   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方法

声明arraylist

  ArrayList<Patient> list = new ArrayList<Patient>();
现在,我想要读取列表中存储的元素 我该怎么做

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

我使用它,但它返回类的对象地址

您必须重写
Patient
toString()
方法。在那里,您将返回要显示的
患者
对象的所有信息

示例:(我个人最喜欢的)

例2:

例3:


使用任何一个。这是一个偏好的问题。

你必须铸造元素

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

您必须向
Patient
类添加公共getter方法

为什么不直接使用:
返回“ID:+ID+”| Name:+Name+| Desc:+Desc?更简单易读,同样高效。或者,使用
String.format
@JonSkeet据我所知,
StringBuilder
比串联字符串更有效。我错了吗?我已经养成了使用
StringBuilder
的习惯。我喜欢你的个人爱好我相信一切都在一个命令上那么java是聪明的并且在幕后使用stringbuolderanyway@RichardTingle对于SO问题来说,这确实是一个好主意。大多数IDE,如Eclipse和IntelliJ,都能够自动生成类的toString重写。我会用这些,至少作为一个模板。
 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();
 }
 @Override
 public String toString()
 {
      return "ID: " + id + ", Name: " + name + ", Desc: " + desc;
 }
 @Override
 public String toString()
 {
      return MessageFormat.format("ID: {0}, Name: {1}, Desc: {2}", id, name, desc);
 }
((Patient) list.get(0)).getName();