java - 使用 arrayList 的排序算法

标签 java arrays sorting oop arraylist

我正在尝试制定一个调度程序,其中两个演讲不能同时进行,尽管一个演讲可以在另一个演讲结束时继续进行。将第一个演讲放入 Scheduler 计划后,我想遍历 arrayList 中的每个演讲,并检查是否与计划中的最后一个演讲兼容。

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

我按 endTime 对我的演讲和讲座进行排序,并输入第一个数组。现在,我无法比较事件并将正确的事件添加到调度程序计划中。

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;
    }

最佳答案

如果您使用ArrayList,那么您可以使用集合 ...

不要重新发明轮子并对列表进行排序

Collections.sort(events);

关于java - 使用 arrayList 的排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40957017/

相关文章:

javascript - 我可以将 javascript Prototype 添加到我的数组实例吗?

C 字母数组排序

java - 显示正在被拖动的组件 java

java - 创建单选按钮

javascript - jQuery 在 if 语句中使用数组数据

java: 为什么比较。当我在声明期间使用 {} 初始化数组时出错

sorting - Elasticsearch 按字母顺序排序,然后按数字排序

java - 基数排序 Java 实现

java - 什么时候需要在方法签名中使用 "throws"?

java - 从 Json 数组中的 Json 数组获取数据 Android Java