Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 32

Не работает вывод в цикле в ArrayList

10.01.2016, 12:51. Показов 1505. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Помогите,пожалуйста, разобраться почему не происходит перемещение между элементами Листа в цикле
При отладке видно, что лист создается правильно, в нем заполняются все поля своими значениями, а при попытке его вывода в консоль в цикле выводится одно и тоже значение столько же раз сколько размер этого листа, например:
есть лист mas,(размер=14) в нем у каждого элемента свое значение поля string, это значение выводится методом GetSb, но выводится в консоль почему-то 13 раз подряд string-поле самого последнего 13 элемента, т.е в цикле переменная изменяется, но вызывается все равно одно и то же
Java
1
2
3
4
5
int k = 0;
        while ( k < mas.size() ) {
            System.out.println(mas.get(k).GetSb());
            k++;
        }
k-изменяется, но в mas.get(k).GetSb() не срабатывает.
полный код не привожу .тк там тренировочный треш но ошибок в нем нет-все проверено, ошибка только при выводе, не могу понять с чем связано. итератор пробовал- но там доступа к полю нет и видно что сам элемент один и тот же выводит.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.01.2016, 12:51
Ответы с готовыми решениями:

Не работает вывод в цикле
Имеется класс для работы со строками. Внутри него имеется метод ( работа которого уже проверена в более простой версии программы) ...

Вывод элементов из ArrayList
Привет,подскажите ,пожалуйста,как вывести из обычного аррайлиста элементы например с первого по пятый?А то вот есть list.get,но он,как я...

Вывод елементов ArrayList в консоль
Помогите плз, при выводе елементов ArrayList в консоль у выводится лишние строки? import java.io.BufferedReader; import...

7
34 / 34 / 21
Регистрация: 01.11.2013
Сообщений: 319
10.01.2016, 13:45
u-geen, for-each пробовали?
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
10.01.2016, 16:22
u-geen, может просто в у всех элементов листа поле .GetSb() одинаковое?
0
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 32
10.01.2016, 17:00  [ТС]
да, результат тот же

Добавлено через 13 минут
я в ужасе, проверял 100 раз цикл присваивания нового элемента листа-все значения были правильные,но получается что как только начинается новый цикл где выводятся значения, в этом же листе mas все элементы переписаны как этот последний 13-й элемент. значит ошибка все-таки не в выводе,но как может быть переписан и заменен сразу весь лист? шайтан какой-то
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
10.01.2016, 17:05
u-geen, как Вы заполняете массив?
0
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 32
10.01.2016, 17:25  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
for (int j = 0; j < sum; j++) {
            for (; m < tmp.length();) {
                if (arr[m] == '(') {
                    mas.add(obj);
                    obj.SetIn(m);
                    obj.SetPr(1);
                    obj.SetSb("(");
                    m++;
                    break;
                }
                if (arr[m] == ')') {
                    mas.add(obj);
                    obj.SetIn(m);
                    obj.SetPr(2);
                    obj.SetSb(")");
                    m++;
                    break;
                }
                if (arr[m] == '*') {
                    mas.add(obj);
                    obj.SetIn(m);
                    obj.SetPr(3);
                    obj.SetSb("*");
                    m++;
                    break;
                }
                if (arr[m] == '/') {
                    mas.add(obj);
                    obj.SetIn(m);
                    obj.SetPr(3);
                    obj.SetSb("/");
                    m++;
                    break;
                }
                if (arr[m] == '+') {
                    mas.add(obj);
                    obj.SetIn(m);
                    obj.SetPr(4);
                    obj.SetSb("+");
                    m++;
                    break;
                }
                if (arr[m] == '-') {
                    mas.add(obj);
                    obj.SetIn(m);
                    obj.SetPr(4);
                    obj.SetSb("-");
                    m++;
                    break;
                }
                m++;
 
            }
        }
получается есть чаровский массив arr, при встрече определенного символа в лист mas добавляется новый элемент с полями: индекс, приоритет и сам символ но (не как чар а как стринг- мне это на потом нужно)
ходил построчно отладчиком, получается что в конце цикла все элементы листа переписываются на один и тот же элемент. не вкурю почему
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
10.01.2016, 17:57
u-geen, obj - это?.. Насколько я понял, вы постоянно добавляете в список ссылку на один и тот же объект, причем все изменения в него (объект) вносите после добавления.
0
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 32
10.01.2016, 18:12  [ТС]
спасибо за наводку, но очень странно что если смотреть пошагово, то каждый элемент при этом присвоении показывал правильные значения, наверное это особенности программы-просто сразу все не обновляется

________________________________________ ___
ребята,всем спасибо что откликнулись, я понял что нужно переписывать цикл инициализации листа заново.
вопрос про сам АррейЛист можно закрыть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2016, 18:12
Помогаю со студенческими работами здесь

вывод в цикле, почему не работает
Доброго всем. Банально хочу вывести через dbms_output в цикле while n-ое кол-во строк. Вопрос почему не выводит? set serveroutput...

вывод из ArrayList
Есть класс, в котором содержатся данные о человеке(имя, профессия, рост, зарплата). Нужно было сделать динамический массив с помощью...

Вывод из ArrayList
Необходимо вывести из ArrayList объекты разных типов.Получается выводить только одного типа.При попытке вывода нескольких выводит ошибку...

Java вывод из БД в ArrayList
В Jav'е ноль, помогите, не могу понять, в чем косяк. Есть метод, который записывает полученный из БД список в ArrayList. Проблема в том,...

Вывод элементов из ArrayList
ArrayList myarr = new ArrayList(); myarr.Add(new Mars(&quot;Иванов Иван Иванович.&quot;,43)); // Добавили информацию класса Mars ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru