Java查找同一类的不同对象之间的最大属性

时间:2016-08-10 01:54:25

标签: java object-comparison

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

 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())...有一种方法我可以找到哪个对象具有每个属性的最大值而无需将其写出来每个组合和每个部分?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以根据抽象类

使用Collection.max()Comparator
Collections.max(
  Arrays.asList(new Atlanta(), new Pennsylvania(), ...),
  Comparator.comparing(warehouse::getPart1)
);