import java.util.GregorianCalendar;
public class BookingCalendar extends GregorianCalendar {
private Integer bookingId;
public Integer getBookingId() {
return bookingId;
}
public void setBookingId(Integer bookingId) {
this.bookingId = bookingId;
}
}
要对此进行测试:
public class CheckCal {
public static void main(String[] args) {
BookingCalendar cal = new BookingCalendar();
System.out.println(cal.getTime()); //Mon Mar 28 06:30:24 IST 2016
cal.setBookingId(25);
System.out.println(cal.getBookingId()); //25
}
}
int dayOfTheMonth = cal.get(Calendar.DAY_OF_THE_MONTH);
否则,应该使用 Map . 最好使用不可变的日期类型作为键;例如
Map<LocalDate, Integer> dateNumbers = new TreeMap<>();
(如果您使用 Calendar 作为键类型和一些称为 set 操作更改键时,贴图的不变量将无效。) 或者,如果您的“日历”相当于一个日期数组,那么您可以使它成为一个对象数组,其中包含一个日期字段和一个数字字段。例如:
public class Booking {
private Room room;
private LocalDate date;
private int id;
// constructor, getters
}
public class Bookings {
// data structures representing all bookings, possibly
// with maps for fast lookups.
// methods for looking up bookings by id, date, room
// methods for adding / removing / updating bookings
// methods finding free rooms for a given day or day range
}
2条答案
按热度按时间z9smfwbn1#
我希望有更好的方法来组织你们的实体关系。如果您在一天内有多个预订请求,那么将所有这些预订ID添加到日期是没有意义的。更确切地说,在每个预订中,都有一个名为
requestedDate
并按日期存储请求的。当您需要在一个日期发出所有请求时,可以使用此字段对其进行筛选。根据你目前的需要,你可以分班上课
GregorianCalendar
类并添加此变量bookingId
有能手和二传手。要对此进行测试:
w6lpcovy2#
没有办法将额外的信息存储在数据库中
java.util.Calendar
对象,除非实现自己的子类(例如)GregorianCalendar
.如果我们可以从您的示例中推断出您要存储的数字是“一个月中的某一天”,那么您不需要存储它。
否则,应该使用
Map
. 最好使用不可变的日期类型作为键;例如(如果您使用
Calendar
作为键类型和一些称为set
操作更改键时,贴图的不变量将无效。)或者,如果您的“日历”相当于一个日期数组,那么您可以使它成为一个对象数组,其中包含一个日期字段和一个数字字段。例如: