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;
    }

6 つのサブクラスがあります。そのうちの 1 つの定義を示します。名前フィールド以外はすべて同じです。

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

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

たとえば、part16つのクラスすべてを比較しようとしています。(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 に答える