我正在用java编写一个mastermind游戏。我有一个名为“checked”的ArrayList,当我检查用户的猜测时,单词“black”,“white”和“blank”被添加到arrayList中。无论如何,我是否可以按重要性顺序对末尾的检查数组进行排序,例如先“黑色”,然后“白色”,然后“空白”?
我正在用java编写一个mastermind游戏。我有一个名为“checked”的ArrayList,当我检查用户的猜测时,单词“black”,“white”和“blank”被添加到arrayList中。无论如何,我是否可以按重要性顺序对末尾的检查数组进行排序,例如先“黑色”,然后“白色”,然后“空白”?
您必须将用户猜测的“重要性顺序”存储在某处,以便您可以在排序中使用它
我建议使用 a
record
来保存key, value
元素(在您的情况下order_of_importance, color
),例如:record
有关类和接口的更多信息comparator
: https://docs.oracle.com/en/java/javase/22/language/records.html https://docs.oracle.com/en/java/javase/22/文档/api/java.base/java/util/Comparator.html我建议您使用
enum
(您可以修改它以满足您的要求)。它们将根据指定的序号值进行排序(如enum
定义中所示)。此类应用程序经常使用枚举。请注意,枚举不需要具有自定义构造函数。仅当在定义中传递值时才需要它。印刷
如果您按照前面的答案所示强类型化您的猜测,可能会更好,但如果您想将它们应用于弱类型(我假设猜测是
String
s),那么这就是我的意思: