ArrayList-存储ArrayList中对象的多个值



我正在尝试创建一个ArrayList,以保存与舒张压和收缩压以及服用日期相对应的两个整数值。我已经想出了以下代码来将数据保存在ArrayList中,但它似乎无法打印出来。

当前读数:

94 61

我希望读数是:

94 61 2/12/2013

请有人帮忙。

public class Blood {
private int systolic;
private int diastolic;
private int num1;
private int num2;
private int num3;
private Day day;
public Blood(int systolic, int diastolic, Day day)
{
    this.systolic = systolic;
    this.diastolic = diastolic;
    this.day = new Day(num1, num2, num3);
}
public String toString()
{
    return String.format("%s %s", systolic,diastolic);
}

public class Day {
private int num1;
private int num2;
private int num3;
public Day(int num1, int num2, int num3)
{
    this.num1 = num1;
    this.num2= num2;
    this.num3 = num3;
}
public String toString()
{
    return String.format("%d%s%d%s%d",num1,"/", num2, "/", num3);
}
import java.sql.Date;
import java.util.ArrayList;
public class BloodTest {
public static void main(String[] args) {
    ArrayList<Blood>mary = new ArrayList<Blood>();
    mary.add(new Blood(94, 61, new Day(2,12,2013)));
    System.out.println(mary.get(0));
}
}

首先,您忘记在Blood对象中调用Day对象的toString()方法:

public class Blood {
    ...
    public String toString() {
        return String.format("%s %s", systolic,diastolic) + day.toString();
    }
    ...
}

此外,您还必须更改Blood构造函数。您已经传入了Day对象的实例,因此将其分配给day字段:

public Blood(int systolic, int diastolic, Day day) {
    this.systolic = systolic;
    this.diastolic = diastolic;
    this.day = day;
}

要将其打印输出,您需要执行以下操作:

public static void main(String[] args) {
    ArrayList<Blood>mary = new ArrayList<Blood>();
    mary.add(new Blood(94, 61, new Day(2,12,2013)));
    System.out.println(mary.get(0).toString());
}

最新更新