移动对象数组中的元素

Shifting elements in an Array of objects

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

随着我学会了编码并掌握了更多知识类,我找到了答案。约会数组需要是一个字符串数组,当您开始插入新约会时,比较前三个字母,然后是数字,然后是年份。当时我使用了一个巨大的嵌套 if else 循环。由于每个日期都是固定数量的字母(3 个代表月、2 天、4 年),因此非常简单,如果需要,只需将其他日期向下推。虽然我相信这个项目的日期永远不会超过 20,但我会放一条错误消息,这样代码在测试时就不会崩溃。

您最好使用 PriorityQueue 而不是 ArrayPriorityQueue 基于优先级堆,一旦你添加一个元素,它将被转移 up/down 树,这需要 O(log(N)) 时间复杂度。如果你移动数组中的一个元素,它将花费 O(N)。