Как разработать следующую структуру данных на Java

У меня есть список L1<A>, содержащий от 60 до 120 объектов, A, которые сами содержат список объектов L2<D>, D.

L2<D> идентичны для всех A.

Пользователь может загрузить новые D, и каждый раз, когда программе приходится проходить весь L1 и добавлять новый D к каждому L2. Очевидно, я бы предпочел иметь главный L2, который можно было бы просто обновить один раз и чтобы каждый A ссылался на этот список, но я не хочу создавать какую-то глобальную переменную L2.

Если я создаю один экземпляр L2, мне просто нужно передать L2 каждому A в L1, или я могу заставить каждый A ссылаться на один L2 без использования глобальной переменной?

Передача общего экземпляра - это не то же самое, что глобальная переменная, и кажется совершенно подходящим решением.

shmosel 15.11.2018 01:48

Похоже, вы должны передать один L2 каждому A в качестве аргумента конструктор, но я не могу быть уверен, поскольку вы пропустили какую-либо информацию о том, что эти вещи на самом деле означают. В следующий раз, когда вы зададите подобный вопрос, не пытайтесь превратить его в нечто столь общее - не все похожие вопросы имеют одинаковый ответ.

Matt Timmermans 15.11.2018 05:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Переменная static - это то, что вы ищете.

public class A {
    private static final List<D> l2 = new ArrayList<>();

    public void addD(D d) {
        l2.add(d);
    }
}

Если l2 статичен, addD() тоже должен быть. Но обычно лучше избегать глобального состояния.

shmosel 15.11.2018 04:07

Другие вопросы по теме