【发布时间】:2020-03-10 13:56:55
【问题描述】:
我正在尝试从我的国家列表中获取最大值(例如,最大值)是否可以尝试在对象列表中使用 for each 循环?我真的很想用最大的方法来做。我知道这种方法是错误的,但我正在尝试一些东西以充分利用它
这是我的代码
class Main {
public static void main(String args[]) {
Measurable[] countries = new Measurable[3];
countries[0] = new Country("Uruguay", 176220);
countries[1] = new Country("Thailand", 514000);
countries[2] = new Country("Belgium", 30510);
Measurable maximum = maximum(countries);
}
public static Measurable maximum(Measurable[] objects) {
if (objects.length == 0) { return 0; }
for (Measurable obj : objects)
{
int area = obj.getMeasure();
}
return area;
}
}
class Country implements Measurable
{
private String name;
private int area;
public Country(String name, int area)
{
this.name = name;
this.area = area;
}
@Override
public double getMeasure() {
return area;
}
}
interface Measurable {
double getMeasure();
}
【问题讨论】:
-
我建议你使用 Comparator 而不是你的 Measurable 接口
-
您的
maximum()方法被声明为返回一个Measurable对象,调用者似乎也希望如此,但是您的代码返回的是int值,那么它是什么?该方法应该返回Measurable对象还是int值,如果是对象,您想要什么值而不是0、null或带有measure = 0的Measurable? -
你想得到最大面积,还是面积最大的国家?