powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Неправильно работает, почему?
14 сообщений из 14, страница 1 из 1
Неправильно работает, почему?
    #37959966
Стас0н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
		
                int startMinute = 869;
                int endMinute = 872;
                int[] array = new int[1000];
                array[869]=10;
                array[870]=10;
                array[871]=10;
                Request request = new Request();
		ArrayList<Request> traffic = new ArrayList<Request>();
		int minutes;
		int hours;
		for ( int i = startMinute; i <= endMinute; i++){
			for (int j = 0; j < array[i]; j++){
				hours = i/60;
				minutes = i - hours*60;
				request.date.set(2012, 7, 10, hours, minutes);
				traffic.add(request);
			}
		}
		
		Locale local = new Locale("ru","RU");
		String DATE_FORMAT = "HH:mm   d MMMM yyyy года";
		String[] russian = 
		{	
			"Января",
			"Февраля",
			"Марта",
			"Апреля",
			"Мая",
			"Июня",
			"Июля",
			"Августа",
			"Сентября",
			"Октября",
			"Ноября",
			"Декабря"		
		};
		DateFormatSymbols russSymbol = new DateFormatSymbols(local);
		russSymbol.setMonths(russian);
		SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT, russSymbol);
		
		for (int i = 0; i < traffic.size(); i++){
			out.println(sdf.format(traffic.get(i).date.getTime()));
		}
		return traffic;
		
	}



Этот код в итоге выводит 30 одинаковых дат:
14:31 10 Августа 2012 года
....
14:31 10 Августа 2012 года
, хотя должен выводить
3 десятка разных дат - примерно вот так: 14:29 10 Августа 2012 года
........
14:30 10 Августа 2012 года
........
14:30 10 Августа 2012 года
........
У класса Request есть атрибут date типа Calendar.

Почему выводится одна и та же дата?
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37959971
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте пошаговую отладку. Помогает. Какой конкретно участок работает не правильно?
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37959988
Стас0н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Дело в том, что я создаю лист traffic типа Request. У каждого элемента списка есть поле - data, которое заполняется в зависимости от текущего i в цикле.
Так вот, казалось бы - на выходе должны получится разные даты, а получается, что одна и та же.

Если после цикла вывести даты всех элементов листа, то получится, что это одна и та же дата. Это то и неправильно.
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37959999
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
for ( int i = startMinute; i <= endMinute; i++){
			for (int j = 0; j < array[i]; j++){
				hours = i/60;
				minutes = i - hours*60;



hours и munutes не зависят от j, для каждого i формируется array[i] шт. одинаковых дат.
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960004
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас0н,
у Вас как минимум внутри цикла по j идет заполнение в зависимости только от i. В остальном конкретизируйте вопрос.
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960006
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас0н,
Да потому Вы один и тотже request добавляете в коллекцию traffic.add(request);
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960010
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас0н,

Ну, так возьмите отладчик и посмотрите какие значения принимают переменные.
Мне, например, вот эта логика вообще непонятна:
Код: java
1.
2.
3.
		
hours = i / 60;
minutes = i - hours * 60;
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960011
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FDДа потому Вы один и тотже request добавляете в коллекцию traffic.add(request);
В точку! +5 к чтению говнокода.
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960015
Стас0н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Почему один и тот же request?
В зависимости от i меняется значение hours и minutes и request разные.
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960020
Стас0н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лагман,

Да, это так. Так и нужно. Каждый array[i] = 10. i пробегает 3 значения. Для каждого i подсчитывается свои hours и minutes, которые занясятся в request.

Стало быть должно быть 3 куска по 10 дат. В каждом их кусков - одна дата
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960025
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас0нПочему один и тот же request?
В зависимости от i меняется значение hours и minutes и request разные.
Значение меняется в одном и том же объекте каждый раз. У вас весь traffic это ссылки на один и тот же объект. Поместите new Request() внутрь цикла.
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960032
Стас0н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Ох, вот я нубас то... Спасибо, дружище, выручил)
Пойду ка я посплю...
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960034
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас0нОх, вот я нубас то... Спасибо, дружище, выручил)
Пойду ка я посплю...
0FD нашел. Я сразу не увидел.
...
Рейтинг: 0 / 0
Неправильно работает, почему?
    #37960038
Стас0н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

все-равно, спасибо всем, кто посты кидал
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Неправильно работает, почему?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]