当前位置: 首页 > 面试题库 >

如何以字符串格式对日期的数组列表进行升序和降序排序

韩善
2023-03-14
问题内容

我有日期的arrayLists,它是String格式,那么如何对这个arraylists进行排序,

ArrayList<String> aryBeginDate;
ArrayList<String> aryDueDate;

for (int i = 0; i < arySubject.size(); i++) {

    RowItem row = new RowItem();
    row.setSubject(arySubject.get(i).toString());
    row.setUser(aryFromUser.get(i).toString());

    if (aryBeginDate.equals(" ")) {
        row.setStartDate(" ");
    } else {
        row.setStartDate(aryBeginDate.get(i).toString()); \\Have to sort at this line
    }

    if (aryDueDate.equals(" ")) {
        row.setEndDate(" ");
    } else {
        row.setEndDate(aryDueDate.get(i).toString()); \\Have to sort at this line
    }

    aryListBean.add(row);

}

问题答案:

要使用日期时,请不要使用字符串。使用日期。显示日期时,只能将日期转换为字符串。否则,在代码中的任何地方,日期都应为Date类型。这是允许按时间顺序进行排序的原因,因为日期具有按时间顺序排列的自然顺序。

因此,一旦RowItema startDate和an endDate都为type
Date,则可以使用简单的比较器按开始日期对行项目列表进行排序:

Collections.sort(rowItems, new Comparator<RowItem>() {
    @Override
    public int compare(RowItem r1, RowItem 2) {
        return r1.getStartDate().compareTo(r2.getStartDate());
    }
});

另外,修复您的if / else块的缩进,因为您的方式确实不可读:

if (aryBeginDate.equals(" ")) {
    row.setStartDate(" ");
} 
else {
    row.setStartDate(aryBeginDate.get(i).toString());
}


 类似资料:
  • 问题内容: 我创建了一个sqlite数据库,该数据库具有一个存储温度值的表。第一次将温度值以升序写入数据库。然后,我将数据库中的温度值读取到一个列表中,然后将该列表添加到组合框中以选择温度- 效果很好。 结果列表为: 然后,我向数据库添加一个新的温度值,例如“ 33”。 它被附加到表的末尾。如果我现在阅读温度,列表将变为: 如果我做或,最终的结果是 有什么简单的方法可以按升序对列表进行排序,以便得

  • 我想按第三个和第一个元素对元组数组进行排序,因此我使用了以下代码: 我的问题是,在前面的例子中,我可以按第三个元素和第一个元素的升序排序,也可以按它们的降序排序(使用反向)。但是如何按第三个元素的升序和第一个元素的降序排序。 请在你的回答中考虑以下情况: 在这种情况下,我不知道内部数组的确切大小(取决于我读入该数组的文件模式),我想按侧中的所有项进行排序(一些升序和一些降序)。 编辑:看起来,我明

  • 我正在尝试对我的数组进行升序和降序排序。不过,我似乎不知道如何正确地执行此操作。我尝试了不同的方法,但都不起作用。当我单击两个按钮时,应该会发生这种情况,一个ID为“stigande”升序,一个ID为“ 爪哇语

  • 我有98000个美国家庭街道地址,我需要按照“步行”的顺序进行排序,也就是说,按照你要走的顺序,沿着街道的一侧走,然后穿过街道往回走。 所需的df结果,对奇数街道编号进行升序排序,然后对偶数街道编号切换到降序排序。[抱歉,第一个问题,还没有资格复制Jupyter笔记本的图像] 4列:数字、街道、城镇、偶数 “编号”列的预期结果:1231 1233 1235 1237 1239 1238 1236

  • 问题内容: 我知道这听起来微不足道,但是我没有意识到 的功能很奇怪。我有一个实际上是字符串形式的“数字”列表,因此我先将它们转换为整数,然后尝试进行排序。 给我: 我想要的是 我四处寻找与排序数字集相关的算法,但是我发现所有算法都涉及对字母数字集进行排序。 我知道这可能是个没有脑子的问题,但是google和我的教科书没有提供比该.sort()功能有用的功能。 问题答案: 您实际上尚未将字符串转换为

  • 问题内容: 我正在尝试对包含数字的字符串列表进行排序 但是列表是排序而不是列表 问题答案: 您要基于值(而不是字符串值)进行排序,因此请尝试: