java - java中基于日期间隔的子列表

标签 java list datetime collections sublist

我有一个名为“评级”的类(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/

相关文章:

sql - 我如何将条件按时间段分组?

c# - 使用模式 "MM/dd/yyyy hh:mm:ss"将字符串转换为 DateTime

java - Maven docker缓存依赖

java - 如何将 ArrayList 传递给以集合作为输入的方法

list - 查找是否在列表中找到具有特定属性值的元素

javascript - 如何在 id 列表上使用 jquery 事件?

java - Hibernate-Search 与许多 (90) 个实体类挂起。

java - 检查特定格式的字符串是否在特定参数之间

python - 为什么列表和元组会改变枚举的输出?

MySQL 两种日期格式之间的转换