gpt4 book ai didi

java - 如何按参数对数组列表进行排序?

转载 作者:行者123 更新时间:2023-11-30 04:02:03 27 4
gpt4 key购买 nike

我有一个包含 10 项的数组列表。我想按参数对这些项目进行排序,但我不确定如何排序。

数组列表中我的项目的签名是:

Creature(String n, Terrain startTerrain, boolean flying, boolean magic, boolean charge, boolean ranged, int combat)

所以本质上我希望对我的数组列表进行排序,这样它的魔法是真实的生物,它们是第一个,然后是远程的生物是第一个,它们出现在列表中的下一个,然后是其他所有东西。

我只使用过冒泡排序,我不知道如何实现它。有什么提示吗?

最佳答案

最简单的方法是创建自己的类来实现 Comparator<Creature> ,比如说,CreatureComparator 。它的 compare method将定义 Creature 的顺序这就是您想要的。

Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

然后您可以调用Collections.sort(yourArrayList, new CreatureComparator()); .

要同时按多个属性排序,请首先测试第一个排序标准。 IE。如果左侧的 magictrue ,但是右手边的magicfalse ,然后返回-1 ,使得所有魔法生物都排在所有非魔法生物之前。如果是倒退,则返回 1 。仅当 magic当您开始比较二级和三级(以及任何其他)排序标准时,字段是相同的。所以如果magic字段相同,测试ranged仅当所有排序标准都相同时,您才会返回 0 (等效)。

关于java - 如何按参数对数组列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21741041/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com