在他的 toString 方法中打印数组的索引

Print the index of the array in his toString method

大家好,对不起我的英语,我不是很擅长写作。

我实际上是在为电影院编写一个预订系统(这是一个大学项目)。我有一个 LinkedList of Users,在里面我放了一个 ArrayList of booked seat。 bookedSeat Class 如下:

public class bookedSeat implements Serializable {

private Hours h;
private Days d;
private int hallNumber;
private int seatNumber;
//getter&setter and constructor below...

当我显示用户的预订时,我使用 toString 方法:

@Override
public String toString() {

    String ret="\n 3[31m Booking "  +  ": day: " + getD() 
    + ", Hall: " + getH() + ", hour: " + getH() + ", seat number: " + 
    getSeatNumber() + "\n";
    return ret;
} 

我预订了几个座位后得到了这个输出:

User{Nome=Daniele, Booked Seat: [
Booking : Day: 24, Hall: 1, hour: 20, seat number: 45
, 
Booking : Day: 29, Hall: 1, hour: 20, seat number: 24
]} 

我现在问用户他想取消哪个预订,我让他写下预订号,这样我就可以保存这个值-1 并删除相关索引(第一个为 1,第二个为 2,等等) ...).

是否有机会从 toString 方法中获取 Booking 的编号?更清楚一点:我想要 toString 的输出:

User{Nome=Daniele, Booked Seat: [
Booking 1: Day: 24, Hall: 1, hour: 20, seat number: 45
, 
Booking 2: Day: 29, Hall: 1, hour: 20, seat number: 24
]} 

感谢您的帮助!

您必须在 bookedSeat class 中添加一个计数器变量来记录预订的座位数,然后使用 toString 获取它。

bookedSeat中:

....your code
private int noOfSeatsBooked;

toString()

String ret="\n 3[31m Booking " + getnoOfSeatsBooked() +  ": day: " + getD() 
+ ", Hall: " + getH() + ", hour: " + getH() + ", seat number: " + 
getSeatNumber() + "\n";
return ret;
} 

使用循环递增每次预订的座位。

您需要将索引添加到 UsertoString 中的最终字符串,而不是 BookedSeat

// User.toString
@Override
public String toString() {
    StringBuilder retVal = new StringBuilder("User{" +
            "name='" + name + '\'' +
            ", bookedSeats=[");
    for (int i = 0 ; i < bookedSeats.size() ; i++) {
        retVal.append("Booking ");
        retVal.append(i + 1);
        retVal.append(": ")
        retVal.append(bookedSeats.get(i));
        retVal.append("\n");
    }
    retVal.append("]\n}");
    return retVal.toString();

}

// BookedSeat.toString
@Override
public String toString() {
    return "Hours: " + h +
            ", Days: " + d +
            ", Hall Number: " + hallNumber +
            ", Seat Number: " + seatNumber;
}