java - 对具有相同特定实例变量的对象 [在对象数组内] 的实例变量求和

标签 java arrays oop object

如果我有三个名为 car 的对象数组,并且说该类具有以下实例变量:

  1. 字符串车名;
  2. int numberOfDoors;

这就是我的 main 使用数组的样子:

 car[] volkswagen2016Array = new car[10];
 car[] volkswagen2017Array = new car[10];
 car[] volkswagen2018Array = new car[10];

如果 carName 在所有这些数组中都相同,我如何形成 for 循环或 foreach 循环来遍历所有这些数组并对 numberOfDoors 变量求和? 谢谢。

编辑:我尝试过的:

for (car a : volkswagen2016Array) {
    if (a == null) {
        break;
    } else {
        String carName = a.getCarName(); // a gettter function inside the class
        if (a.getCarName().equalsIgnoreCase(carName)) {
            doorSum += a.getDoorNum(); //doorSum is an int variable inside main, int doorSum = 0;
        }
    }
}

最佳答案

因为你需要迭代 3 个数组,如果 3 个 Car 数组大小相同,for loop 优于 for each

int sum = 0;
for(int i=0; i<volkswagen2016Array.length; i++)  {

      if(volkswagen2016Array[i].getCarName().equals(carName)) {
             sum += volkswagen2016Array[i].getNumberOfDoors();
             }

       if(volkswagen2017Array[i].getCarName().equals(carName)) {
             sum += volkswagen2017Array[i].getNumberOfDoors();
             }

       if(volkswagen2018Array[i].getCarName().equals(carName)) {
             sum += volkswagen2018Array[i].getNumberOfDoors();
             }

   }

通过使用 java-8 流

int sum = IntStream.range(0, volkswagen2016Array.length)
          .map(i->Stream.of(volkswagen2016Array[i],volkswagen2017Array[i],volkswagen2018Array[i])
                  .filter(c->c.getName().equals(carName)).mapToInt(Car::getNumberOfDoors).sum()).sum();

关于java - 对具有相同特定实例变量的对象 [在对象数组内] 的实例变量求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55197089/

相关文章:

javascript - JS 逻辑算法不工作,不进入 else 分支

python - 在类中使用 super()

javascript - 访问数组中的对象,它是另一个对象的属性 - Javascript

java - 如何从父类(super class)到子类重用代码 Intent Intent=new Intent(context,Activity.class) ?

java - eclipse 和 JAR 中的资源位置差异问题

java - 使用 jetty Http 客户端发送 Https 请求中的 NullPointerException

java - `-jvm-debug 5005` 在 JVM 中到底改变了什么?

java - 如何使用 for 循环和 while 循环运行数组

javascript - 如何获取 AngularJS 响应对象集合中对象的 indexOf?

c# - 对如何组织我的类(class)有疑问