Локальные и глобальные переменные

#java

#java

Вопрос:

У меня возникли проблемы с сохранением узла в ArrayList узлов в двух отдельных циклах for (не вложенных). Существует большая проблема с областью видимости. Мне нужно прочитать несколько значений в первом цикле for и сохранить значения на этом узле, но затем я должен использовать другой цикл for для чтения совершенно другого значения, недоступного в первом, и сохранить его на том же узле. Я пытался сделать этот узел глобальным, но, похоже, это не работает. И я не могу инициализировать его перед циклом for, потому что значения, которые необходимо связать с ним, находятся в двух отдельных циклах for, как я упоминал, которые не являются вложенными. Должно быть простое решение этой проблемы, которое я не вижу.

Комментарии:

1. Если вы опубликуете имеющийся у вас код, это может помочь нам найти решение, которого вы не видите. 🙂

2. код? (то есть «опубликуйте, пожалуйста, какой-нибудь код …»)

3. Можете ли вы опубликовать часть кода? Не уверен, почему вы не смогли инициализировать перед циклами.

4. Похоже, это проблема дизайна, но что касается меня, я не совсем понимаю внешние ограничения, которые управляют вашим дизайном. Не могли бы вы рассказать нам подробнее — почему такие странные требования?

5. можете ли вы опубликовать какой-нибудь псевдокод, чтобы иметь лучшее представление о том, что вы делаете?

Ответ №1:

Нам не нужно видеть код — тем более, что он неверен — но нам нужно увидеть четкое, недвусмысленное описание проблемы. В противном случае, если проблема не определена, любое решение бессмысленно, поскольку оно может быть правильным решением совершенно другой проблемы.

Вот мое предположение о том, что вы делаете:

  1. Определите массив вне области действия двух циклов.
  2. Выполните первый цикл чтения в узлы (я предполагаю, что вы инициализируете массив узлов и должны прочитать информацию для каждого узла и сохранить ее в массиве.
  3. Пройдите второй цикл, внося изменения в узлы, которые вы определили в первом цикле.

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

Комментарии:

1. Да, вы правильно описали проблему. Я не могу инициализировать узел ни на что, кроме null, пока не получу информацию из первого цикла. Кажется, что информация в первом цикле не сохраняется на узлах, когда я повторно обращаюсь к ним во втором цикле.

2. @user700448: Тогда у вас ошибка, но реализация сомнительного дизайна — это не способ исправить ошибку, это отладка. Ваше решение — выяснить, почему данные не сохраняются.

3. Я просто использую имя для ссылки на каждый узел