Какая лучшая реализация получения значения "последнего" класса?

Схематично структура проекта такая:

class Main -> class A -> class B -> class C

Класс A:

class A {
    private ArrayList<B> bs = new ArrayList()<>;

    public ArrayList<b> getB(){
        return bs;
    }
}

Класс B:

class B {
    private ArrayList<C> cs = new ArrayList()<>;

    public ArrayList<C> getC(){
        return cs;
    }
}

Класс С:

class C {
    private int value;
    public int getValue(){
        return this.value;
    }
}

В классе Main необходимо получить сумму всех значений переменных value из класса С.

Класс Main:

public class Main {

    public static void main(String[] args) {
        A aClass = new A();

        for(int i = 0; i < aClass.getB.size(); i++){
            for(int j = 0; j < aClass.getB().get(i).getC().size(); j++){
                value += aClass.getB().get(i).getC().get(j).getValue();
        }
    }

Каким образом лучше это реализовать? Считается ли нормальной реализацией способ, который использован в коде выше - путем получения целого ArrayList?


Ответы (1 шт):

Автор решения: instahipsta282

Ну, как мне видится, тут в любом случае придется перебирать оба списка, однако сделать это можно элегантнее:

Допустим, с помощью foreach:

for(B bClass : aClass.getB) {
    for(C cClass : bClass.getC) {
        value += cClass.getValue();
    }
}
→ Ссылка