在一个对象数组中移动元素

时间:2018-03-05 07:54:24

标签: java arrays shift

我需要在Planner类中插入一个约会,该类将约会A1作为参数,并将A1按正确的顺序放置到数组Appoint。我已经创建了只有4个默认约会并且长度为20的Array。我还创建了一个方法来比较Array的两个对象,如果A1小于A2,则返回true。我有一个方法,允许我将数据插入数组,如果数组[i {= null。但是我不知道如何对它进行排序,因为我必须移动元素而不是对整个数组进行排序

2 个答案:

答案 0 :(得分:0)

由于我学会了编码并参加了更多的课程,所以我意识到了答案。约会数组必须是String数组,并且在您插入新约会时,先比较前三个字母,然后是数字和年份。当时我使用了一个巨大的嵌套if循环。由于每个日期都是固定数量的字母(3个字母表示每月,2天,4年),因此非常简单,如果需要,只需将其他日期向下推即可。尽管我相信该项目的日期从未超过20,但是我会放置一条错误消息,以使代码在测试时不会崩溃。

答案 1 :(得分:0)

您最好使用PriorityQueue而不是ArrayPriorityQueue基于优先级堆,一旦添加元素,它就会在树中上/下移动,这会花费O(log(N))时间复杂度。如果在Array中移动一个元素,它将花费O(N)。