gpt4 book ai didi

java - 包含 Java 对象的数组中的最大值

转载 作者:行者123 更新时间:2023-12-01 16:54:26 25 4
gpt4 key购买 nike

我有一个名为卡片类型的数组,它存储花色和排名。有没有办法使用 Collections.max 找到排名最高的卡?我在代码的其他方面使用了序数,但现在似乎无法让它工作。

我已经尝试过这个,(t是传递到方法中的参数。trick是包含卡片的数组)

Collections.max(t.trick.rank.ordinal());

它是 else if 语句的一部分,然后进入另一个语句,所以我认为我不能用 for 循环启动它,并且作为继承类的一部分,我无法执行 for 循环 else ,因为它会抛出错误它不是从其他类继承的。有没有一种简单的方法可以找到我排名最高的卡牌?

最佳答案

我建议您让 Card 类实现 Comparable 接口(interface)。这需要您定义 Card 实例之间的比较函数。

然后,您需要做的就是在其上调用 Collections.max 来获得“最大”卡片。

一个完整但简约的解决方案如下所示:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TestingClass
{

public static void main(String[] args) throws Exception
{
List <Card> a = new ArrayList<Card>();
a.add(new Card(1));
a.add(new Card(5));
a.add(new Card(2));
a.add(new Card(3));

Card x= Collections.max(a);
System.out.println(x.rank); //this will print 5
}

}

class Card implements Comparable<Card>
{
public int rank;
public Card(int rank)
{
this.rank=rank;
}
@Override
public int compareTo(Card other) {
if(this.rank<other.rank) return -1;
else if(other.rank< this.rank) return 1;
return 0;
}

}

关于java - 包含 Java 对象的数组中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34863349/

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