日期:2014-05-20  浏览次数:20756 次

Array.sort时间排序问题
想做一个二维数组的排序,数组的第一列,是类似
2011/02/12 10:00~12:00
2011/03/12 13:00~15:00
2011/05/21 16:00~18:00
2010/12/07 19:00~21:00
的升序排列。
请教各位大牛们~~这样的排序,该怎么写Comparator呢?完全不会了~~

------解决方案--------------------
1、如果你的数据是类型是java.util.Date,那么不需要实现,因为java.util.Date本来就实现了Comparable接口。
2、如果 你的数据类型是String,需要注意不能使用1,2这样的单月日形式,必须使用01,02
3、你对数组的其它列的数据还需要实现Comparable接口。
------解决方案--------------------
Java code


//用TreeSet可以自然排序呀  不就是升序了么?

如:

package com.testClass;

import java.io.IOException;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Test2 {

    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws Exception {

        String time[] = {"2011/02/12 10:00~12:00","2011/03/12 13:00~15:00","2011/05/21 16:00~18:00","2010/12/07 19:00~21:00"};
        
        Set<String> set = new TreeSet<String>();
        
        for (int i = 0; i < time.length; i++) {
            set.add(time[i]);
        }
        
        Iterator<String> iterator = set.iterator();
        
        while(iterator.hasNext()){
            
            System.out.println(iterator.next()+"\n");
        }
        
    }

}