首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JAVA按日期和数字对2D字符串数组进行排序?

用JAVA按日期和数字对2D字符串数组进行排序?
EN

Stack Overflow用户
提问于 2014-09-11 10:53:31
回答 2查看 268关注 0票数 0

我有一个包含以下数据的String[][]数组。我想对这个数组进行排序

  1. 根据列data[][1]中的整数值,
  2. 根据data[][2]列中的日期。输出应该是2D字符串数组。

字符串数据={{“文本”、"5“、”2011年2月4日(星期五) 13:17:31格林尼治时间“}、{”文本“、"5”、“2011年2月4日星期五”14:24:47格林尼治时间}、{“文本”、"8“、”星期五“、”2014年9月5日20:43:57格林尼治时间“}、{”文本“、"4”、“星期五”、2013年11月8日16:35:34格林尼治时间}、{“文本”"4",“星期五,2014年8月15日10:00:16格林尼治时间”},{“文本”,"4",“星期五,2014年5月16日15:03:08格林尼治时间”},{“文本”,"6",“星期五,2014年1月31日13:12:06格林尼治时间”},{“文本”,"4",“2014年8月4日”,09:14:36格林尼治时间},{“文本”,"4","Mon“,2014年9月8日03:55:54格林尼治时间},{“文本”、"1“、”星期一,2014年9月8日12:53:09格林尼治时间“};

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-11 13:25:40

我希望对整数排序不会成为问题,我将向您展示如何按照日期进行排序

代码语言:javascript
复制
Arrays.sort(data, new Comparator<String[]>() { // sort the array
    SimpleDateFormat f = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
    // SimpleDateFormat  to parse the String Date
    @Override
    public int compare(String[] o1, String[] o2) {
        try {
            return f.parse(o1[2]).compareTo(f.parse(o2[2]));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return -1;
    }
});
for(int i = 0; i < data.length; i++){ // display the result
    for(int j = 0; j < data[i].length; j++)
    {
        System.out.print(data[i][j]);
        if(j < data[i].length - 1) System.out.print(" ");
    }
    System.out.println();
}
票数 1
EN

Stack Overflow用户

发布于 2014-09-11 10:55:50

只需使用Arrays.asList将数组封装到列表中即可。

http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList%28T...%29

现在使用Collections.sort并创建一个自定义Comparator,它从列表中的数组中读取数据并进行相应的排序。

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort%28java.util.List,%20java.util.Comparator%29

首先对整数进行比较,如果整数相同,然后将字符串解析为Date并比较两个Date对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25785594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档