比方说,我有一个具有属性Rank和SubRank的对象的ArrayList。他们通过网络服务传递给我,所以我没有处理最初的订购。如果不存在要使用的子排序,则将其设置为-1。对ArrayList中的特定对象进行排序而不改变Java中的其他对象
[Rank: 1, SubRank: -1]
[Rank: 2, SubRank: -1]
[Rank: 3, SubRank: 3]
[Rank: 4, SubRank: 2]
[Rank: 5, SubRank: -1]
[Rank: 6, SubRank: 1]
我需要做的是用SubRank只留下完好的其余对象排名顺序过这么列表最终看起来像:
[Rank: 1, SubRank: -1]
[Rank: 2, SubRank: -1]
[Rank: 6, SubRank: 1]
[Rank: 4, SubRank: 2]
[Rank: 5, SubRank: -1]
[Rank: 3, SubRank: 3]
限制:Java 7中,没有外部库
您所需的输出逻辑没有意义。你想按“SubRank”排序吗?首先通过“SubRank”,然后是“Rank”?先用'Rank',然后用'SubRank'?无论哪种方式,一个“比较器”(或执行“比较”)将做到这一点。 – Mena
您需要实施“排序数组排序”算法,以SubRank> 0排序对象,并使SubRank <0的对象保持完好。搜索谷歌'排序阵列到位' –
如果列表大小很小,请使用smth类似冒泡排序 - 对于每个位置在列表中找到最小元素并将其与当前元素交换(如果它不是-1) – AdamSkywalker