Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在同一类的不同对象之间找到最大的属性_Java_Object Comparison - Fatal编程技术网

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

Java在同一类的不同对象之间找到最大的属性,java,object-comparison,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("Transact

我想找出哪个仓库的每个零件数量最多。我建立了一个超级类,定义如下

 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;
    }
我有六个子类,我将展示其中一个子类的定义,它们除了name字段外都是相同的

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

    public Atlanta() throws FileNotFoundException {
        name = "Atlanta";
    }
}
例如,我试图比较所有六个类之间的
part1
。我将函数设置为返回每个部分的值,但是如果
(Atlanta.getPart1()>Chicago.getPart1()&&Atlanta.getPart1()>Denver.getPart1())的话,这将非常糟糕…
有没有一种方法可以让我找到每个属性中哪个对象的价值最大,而不必为每个组合和每个部分写出来

非常感谢您的帮助。

您可以使用基于抽象类的适当的
比较器

Collections.max(
Arrays.asList(新亚特兰大(),新宾夕法尼亚(),…),
Comparator.comparing(仓库::getPart1)
);

为什么每个位置都有一个子类?为什么不只是一个仓库的不同实例和某种集合类来存放所有仓库呢。然后,collection类可以有一个方法告诉您哪个仓库拥有最多的“Part4S”等等。