1

我试图找出哪个仓库的每个零件数量最多。我设置了一个下面定义的超类。

 public abstract class warehouse {
    int part1;
    int part2;
    int part3;
    int part4;
    int part5;
    String name;
    File inventory = new File("Inventory.txt");
    File transactions = new File("Transactions.txt");
    public warehouse() throws FileNotFoundException {

    }

    public int getPart1() {
        return part1;
    }
    public int getPart2(){
        return part2;
    }
    public int getPart3() {
        return part3;
    }
    public int getPart4() {
        return part4;
    }
    public int getPart5() {
        return part5;
    }

我有六个子类,我将展示一个的定义,除了名称字段之外,它们都相同。

import java.io.FileNotFoundException;
public class Atlanta extends warehouse {

    public Atlanta() throws FileNotFoundException {
        name = "Atlanta";
    }
}

例如,我试图part1在所有六个班级之间进行比较。我设置了函数来返回每个部分的值,但是如果(Atlanta.getPart1() > Chicago.getPart1() && Atlanta.getPart1()> Denver.getPart1())...有一种方法可以找到哪个对象具有每个属性的最大值,而不必为每个组合和每个部分写出它,那真的很糟糕?

任何帮助将不胜感激。

4

1 回答 1

1

您可以使用Collection.max()适当Comparator的基于抽象类

Collections.max(
  Arrays.asList(new Atlanta(), new Pennsylvania(), ...),
  Comparator.comparing(warehouse::getPart1)
);
于 2016-08-10T01:59:52.343 回答