我有一个名为“评级”的类(class),如下所示:
import java.util.Date;
public class Rating implements Comparable<Rating> {
private long userId;
private long itemId;
private float ratingValue;
private Date dateTime;
public Rating(long userId, long itemId, float ratingValue, Date dateTime) {
this.userId = userId;
this.itemId = itemId;
this.ratingValue = ratingValue;
this.dateTime = dateTime;
}
@Override
public String toString() {
return "Rating{" +
"userId=" + userId +
", itemId=" + itemId +
", ratingValue=" + ratingValue +
", dateTime=" + dateTime +
'}';
}
public Date getDateTime() {
return dateTime;
}
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public long getItemId() {
return itemId;
}
public void setItemId(long itemId) {
this.itemId = itemId;
}
public float getRatingValue() {
return ratingValue;
}
public void setRatingValue(float ratingValue) {
this.ratingValue = ratingValue;
}
public void setDateTime(Date datetime) {
this.dateTime = datetime;
}
@Override
public int compareTo(Rating o) {
return getDateTime().compareTo(o.getDateTime());
}
}
现在假设我有一个名为 myList 的列表,它包含评级对象:
List<Rating> myList=New ArrayList<Object>();
现在我根据日期对 myList 进行排序:
Collections.sort(myList);
我想要做的是查找 myList 在某些特定日期内的子列表(例如从四月到五月的评分)。
最佳答案
我认为你应该使用Unix time format存储时间戳。您可以使用getime()
Date 类中的函数用于转换。如果您按升序对 unix 时间戳进行排序,您将首先获得最旧的日期。希望这会有所帮助。
关于java - java中基于日期间隔的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38664055/