【问题标题】:Sorting of Date ArrayList日期ArrayList的排序
【发布时间】:2012-09-15 16:45:27
【问题描述】:

我有一个ArrayList,其中包含格式为(星期六,2012 年 2 月 4 日)的日期。我怎样才能对这个ArrayList 进行排序?

【问题讨论】:

  • 你做了什么?这样做?你试过了吗?
  • 你约会时使用什么课程?
  • 您需要以哪种类型开始日期或日期或年份?
  • 日期格式?你的意思是日期存储为字符串?因为java.util.Date 对象本身没有格式。
  • 我尝试使用 Collections.sort()....我在数组列表中有四到五个日期项目,格式为“2012 年 2 月 4 日星期六”...我必须对它们进行排序以显示按从新到旧的顺序排列。

标签: java android sorting


【解决方案1】:

这是最简单的排序方式之一,

Collections.sort(<Your Array List>);

【讨论】:

    【解决方案2】:

    如果您在排序时有任何特殊要求,可以提供自己的Comparator。例如:

    //your List
    ArrayList<Date> d = new ArrayList<Date>();
    
    //Sorting
    Collections.sort(d, new Comparator<Date>() {
        @Override
        public int compare(Date lhs, Date rhs) {
            if (lhs.getTime() < rhs.getTime())
                return -1;
            else if (lhs.getTime() == rhs.getTime())
                return 0;
            else
                return 1;
        }
    });
    

    关键是您要将Date 对象转换为毫秒(使用getTime())进行比较。

    【讨论】:

    • 否则只使用 Collections.sort();正如@Aerrow 所说。日期为comparable
    【解决方案3】:

    8 年后..

    List<Date> dates = datelist;
    List<Date> sorted = dates.stream()
      .sorted(Comparator.comparingLong(Date::getTime))
      .collect(Collectors.toList());
    

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多