Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于数组列表的排序算法_Java_Arrays_Sorting_Oop_Arraylist - Fatal编程技术网

Java 基于数组列表的排序算法

Java 基于数组列表的排序算法,java,arrays,sorting,oop,arraylist,Java,Arrays,Sorting,Oop,Arraylist,我正试图制定一个日程安排方案,使两次会谈不能同时进行,尽管一次会谈可以在另一次会谈结束时继续进行。在将第一个对话放入计划程序计划后,我想查看我的arrayList中的每个对话,并检查是否与计划中的最后一个对话兼容 我想我可以通过比较来检查索引I的开始时间是否大于索引I-1的结束时间 我把我的演讲和讲座分类,输入第一个数组。现在,我很难比较事件并将正确的事件添加到计划程序计划中 public class Scheduler { private ArrayList<Event> ev

我正试图制定一个日程安排方案,使两次会谈不能同时进行,尽管一次会谈可以在另一次会谈结束时继续进行。在将第一个对话放入计划程序计划后,我想查看我的arrayList中的每个对话,并检查是否与计划中的最后一个对话兼容

我想我可以通过比较来检查索引I的开始时间是否大于索引I-1的结束时间

我把我的演讲和讲座分类,输入第一个数组。现在,我很难比较事件并将正确的事件添加到计划程序计划中

public class Scheduler {

private  ArrayList<Event> events = new ArrayList <Event>();

public Scheduler(ArrayList<Event> events){ //Constructor
    for (int i=0; i<events.size(); i++)
        this.events.add(events.get(i));
    }

    public ArrayList<Event> getsortSchedule(){ //Sorting Algorithm
        int N = events.size() -1;

            for (int i = 0; i <=(N-1); i++)
        {
                for(int j = 1; j <= N;j++)
                {
                        if(events.get(i).getendTime().compareTo(events.get(j).getendTime()) > 0)  
                        Collections.swap(events, i, j);
                }   
        }


        return events;
    }

    public Scheduler getSchedule(){ //Scheduling attempt
        Scheduler plan = new Scheduler(events);
        this.events.add(events.get(0));

        for (int i=0; i == events.size(); i++)
        {
            //if(events.get(i).getStartTime() > events.get(i).getendTime())
            //if(events.get(i).getStartTime().compareTo(events.get(l).getendTime()) > events.get(i-1).getendTime().compareTo(events.get(l).getendTime()))  
            this.events.add(events.get(i));
        }

        return plan;
    }
公共类调度程序{
private ArrayList events=new ArrayList();
公共计划程序(ArrayList事件){//构造函数
对于(int i=0;i events.get(i-1).getendTime().compareTo(events.get(l).getendTime()))
this.events.add(events.get(i));
}
退货计划;
}

如果您使用的是ArrayList,则可以使用集合

不要重新发明轮子,把清单分类

Collections.sort(events);

如果您使用的是ArrayList,则可以使用集合

不要重新发明轮子,把清单分类

Collections.sort(events);

你比较这些事件是什么意思?您已经在与事件比较
endtime
对吗(但未使用
collection
sort
方法)?比较事件是什么意思?您已经在与事件
结束时间
进行比较了,对吗(但没有使用
收集
排序
方法)?@Xocę但是我需要比较开始时间和结束时间,以确保在我将它们放入
调度程序计划
之前没有任何事件在同一时间发生,如果您允许我提示的话:简短的回答有时很好;但我想你经常会抛出一些半信半疑的回答。我认为提高一点质量将有助于你收集更多的投票…@Xocę但是我需要比较开始时间和结束时间,以确保在我将它们放入
调度程序计划之前,没有任何事件同时发生,如果你允许我一个提示的话:简短的回答有时很好;但我想你经常会抛出一些半信半疑的回答。我认为提高一点质量会帮助你收集更多的选票。。。