Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Неправильно работает, почему? / 14 сообщений из 14, страница 1 из 1
17.09.2012, 11:30:13
    #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
17.09.2012, 11:34:16
    #37959971
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно работает, почему?
Попробуйте пошаговую отладку. Помогает. Какой конкретно участок работает не правильно?
...
Рейтинг: 0 / 0
17.09.2012, 11:40:48
    #37959988
Стас0н
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно работает, почему?
Blazkowicz,

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

Если после цикла вывести даты всех элементов листа, то получится, что это одна и та же дата. Это то и неправильно.
...
Рейтинг: 0 / 0
17.09.2012, 11:45:53
    #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
17.09.2012, 11:47:24
    #37960004
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно работает, почему?
Стас0н,
у Вас как минимум внутри цикла по j идет заполнение в зависимости только от i. В остальном конкретизируйте вопрос.
...
Рейтинг: 0 / 0
17.09.2012, 11:47:49
    #37960006
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно работает, почему?
Стас0н,
Да потому Вы один и тотже request добавляете в коллекцию traffic.add(request);
...
Рейтинг: 0 / 0
17.09.2012, 11:49:55
    #37960010
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильно работает, почему?
Стас0н,

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

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

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

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

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

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


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