java实现多个数组中时间段重复去重,最后获取一天的有效时间段

public class TestL {

    public static void main(String[] args) {

        List<String[]> listIn = new ArrayList<String[]>();
        String[] a = {"07:00","09:30"};
        String[] b = {"19:30","23:00"};
        String[] c = {"06:00","08:25"};
        listIn.add(c);
        listIn.add(a);
        listIn.add(b);
        fib(listIn);
    }

    public static List<String[]> fib(List<String[]>listIn){
        Collections.sort(listIn, new Comparator<String[]>() {
            @Override
            public int compare(String[] o1, String[] o2) {
                return o1[0].compareTo(o2[0]);
            }
        });
        List<String[]> listOut = new ArrayList<String[]>();
        String begin = "";
        String end = "";
        for (int i = 0,size = listIn.size();i < size;i++){
            String[] tmp = listIn.get(i);
            if(i==0){
                begin = tmp[0];
                end = tmp[1];
            }else{
                if(tmp[0].compareTo(end) <=0 ){
                    if(tmp[1].compareTo(end) >0){
                        end = tmp[1];
                    }
                }else{
                    String[] str = {begin,end};
                    listOut.add(str);
                    begin = tmp[0];
                    end = tmp[1];
                }
            }
            if(i==(size-1)){
                String[] str = {begin,end};
                listOut.add(str);
            }
        }
        return listOut;
    }


}

猜你喜欢

转载自blog.csdn.net/lspj201007186/article/details/80537273