Группировка в двухмерном массиве
От: corbon  
Дата: 30.06.10 07:24
Оценка:
Всем привет!
Подскажите как лучше в Java реализовать группировку в двухмерном массиве с суммированием значений.
Имеем матрицу вида:
12.01.2010 32 45 12
12.01.2010 3 33 56
14.01.2010 89 67 98
11.01.2010 9 22 9
12.01.2010 67 99 23
13.01.2010 54 77 5

необходимо привести к виду:
12.01.2010 102 177 91
14.01.2010 89 67 98
11.01.2010 9 22 9
13.01.2010 54 77 5

Заранее спасибо!
Re: Группировка в двухмерном массиве
От: denis.zhdanov Россия http://denis-zhdanov.blogspot.com/
Дата: 30.06.10 07:42
Оценка: +1
Здравствуйте, corbon, Вы писали:

C>Всем привет!

C>Подскажите как лучше в Java реализовать группировку в двухмерном массиве с суммированием значений.
C>Имеем матрицу вида:
C>12.01.2010 32 45 12
C>12.01.2010 3 33 56
C>14.01.2010 89 67 98
C>11.01.2010 9 22 9
C>12.01.2010 67 99 23
C>13.01.2010 54 77 5

C>необходимо привести к виду:

C>12.01.2010 102 177 91
C>14.01.2010 89 67 98
C>11.01.2010 9 22 9
C>13.01.2010 54 77 5

C>Заранее спасибо!


Правильно я понимаю, что вопрос именно 'как сделать в джаве', а не 'как сделать'? Какие есть идеи по поводу того, как это сделать не в джаве?
http://denis-zhdanov.blogspot.com
Re[2]: Группировка в двухмерном массиве
От: corbon  
Дата: 30.06.10 09:19
Оценка:
Здравствуйте, denis.zhdanov, Вы писали:

DZ>Здравствуйте, corbon, Вы писали:


C>>Всем привет!

C>>Подскажите как лучше в Java реализовать группировку в двухмерном массиве с суммированием значений.
C>>Имеем матрицу вида:
C>>12.01.2010 32 45 12
C>>12.01.2010 3 33 56
C>>14.01.2010 89 67 98
C>>11.01.2010 9 22 9
C>>12.01.2010 67 99 23
C>>13.01.2010 54 77 5

C>>необходимо привести к виду:

C>>12.01.2010 102 177 91
C>>14.01.2010 89 67 98
C>>11.01.2010 9 22 9
C>>13.01.2010 54 77 5

C>>Заранее спасибо!


DZ>Правильно я понимаю, что вопрос именно 'как сделать в джаве', а не 'как сделать'? Какие есть идеи по поводу того, как это сделать не в джаве?


Правильно, точнее в JavaScript. В php например есть array_unique, array_count_values итп
Re: Группировка в двухмерном массиве
От: Passer  
Дата: 30.06.10 10:28
Оценка:
Здравствуйте, corbon, Вы писали:

C>Всем привет!

C>Подскажите как лучше в Java реализовать группировку в двухмерном массиве с суммированием значений.
а сколько данных там будет и на сколько дат? думаю вероятнее всего окажется проще сделать в ручную.
собрать результат в массив. ресурсов всего на один проход и суммирования.(не дорого я не сложно)
Re[2]: Группировка в двухмерном массиве
От: corbon  
Дата: 30.06.10 12:05
Оценка:
Здравствуйте, Passer, Вы писали:

P>Здравствуйте, corbon, Вы писали:


C>>Всем привет!

C>>Подскажите как лучше в Java реализовать группировку в двухмерном массиве с суммированием значений.
P>а сколько данных там будет и на сколько дат? думаю вероятнее всего окажется проще сделать в ручную.
P>собрать результат в массив. ресурсов всего на один проход и суммирования.(не дорого я не сложно)

порядка 1000 записей, на 100-200 дат
Re[3]: Группировка в двухмерном массиве
От: denis.zhdanov Россия http://denis-zhdanov.blogspot.com/
Дата: 30.06.10 12:31
Оценка:
Здравствуйте, corbon, Вы писали:

DZ>>Правильно я понимаю, что вопрос именно 'как сделать в джаве', а не 'как сделать'? Какие есть идеи по поводу того, как это сделать не в джаве?


C>Правильно, точнее в JavaScript. В php например есть array_unique, array_count_values итп


Т.е. вопрос состоит в том, как такое сделать в javascript? При этом есть информация о том, как это сделать в php?

Вопросы:

  1. Почему бы не генерить тогда нужные данные на стороне сервера (php) и отдавать их клиенту, если есть понимание, как это делать?
  2. Есть ли понимание алгоритма, как это делать?
http://denis-zhdanov.blogspot.com
Re[4]: Группировка в двухмерном массиве
От: corbon  
Дата: 30.06.10 14:07
Оценка:
Здравствуйте, denis.zhdanov, Вы писали:

DZ>Здравствуйте, corbon, Вы писали:


DZ>>>Правильно я понимаю, что вопрос именно 'как сделать в джаве', а не 'как сделать'? Какие есть идеи по поводу того, как это сделать не в джаве?


C>>Правильно, точнее в JavaScript. В php например есть array_unique, array_count_values итп


DZ>Т.е. вопрос состоит в том, как такое сделать в javascript? При этом есть информация о том, как это сделать в php?


DZ>Вопросы:


DZ>

    DZ>
  1. Почему бы не генерить тогда нужные данные на стороне сервера (php) и отдавать их клиенту, если есть понимание, как это делать?
    DZ>
  2. Есть ли понимание алгоритма, как это делать?
    DZ>

Именно так, данные генерятся на стороне сервера. А вот за алгоритм и подсказку реализации в Javascript я сюда и написал.
Re[5]: Группировка в двухмерном массиве
От: denis.zhdanov Россия http://denis-zhdanov.blogspot.com/
Дата: 30.06.10 14:36
Оценка:
Здравствуйте, corbon, Вы писали:

C>Именно так, данные генерятся на стороне сервера. А вот за алгоритм и подсказку реализации в Javascript я сюда и написал.


Остается только ждать алгоритма и подсказки реализации в Javascript, других вариантов нет.
http://denis-zhdanov.blogspot.com
Re[5]: Группировка в двухмерном массиве
От: Eugeny__ Украина  
Дата: 30.06.10 14:44
Оценка:
Здравствуйте, corbon, Вы писали:


C>Именно так, данные генерятся на стороне сервера. А вот за алгоритм и подсказку реализации в Javascript я сюда и написал.


Осталось понять, при чем тут java.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[6]: Группировка в двухмерном массиве
От: corbon  
Дата: 30.06.10 15:55
Оценка: :))
Здравствуйте, denis.zhdanov, Вы писали:

DZ>Здравствуйте, corbon, Вы писали:


C>>Именно так, данные генерятся на стороне сервера. А вот за алгоритм и подсказку реализации в Javascript я сюда и написал.


DZ>Остается только ждать алгоритма и подсказки реализации в Javascript, других вариантов нет.


Спасибо ребята, очень помогли))
Re: Группировка в двухмерном массиве
От: telal  
Дата: 02.07.10 08:20
Оценка:
Здравствуйте, corbon, Вы писали:

C>Всем привет!

C>Подскажите как лучше в Java реализовать группировку в двухмерном массиве с суммированием значений.
C>Имеем матрицу вида:
C>12.01.2010 32 45 12
C>12.01.2010 3 33 56
C>14.01.2010 89 67 98
C>11.01.2010 9 22 9
C>12.01.2010 67 99 23
C>13.01.2010 54 77 5

C>необходимо привести к виду:

C>12.01.2010 102 177 91
C>14.01.2010 89 67 98
C>11.01.2010 9 22 9
C>13.01.2010 54 77 5

C>Заранее спасибо!


В джаве нет документированных стандартных методов работы с матрицами, но можно решить задачу алгоритмически


public static void main(String args[]) {
         String[][] array = {{"12.01.2010", "32", "45", "12"},
                             {"12.01.2010", "3", "33", "56"},
                             {"14.01.2010", "89", "67", "98"},
                             {"11.01.2010", "9", "22", "9"},
                             {"12.01.2010", "67", "99", "23"},
                             {"13.01.2010", "54", "77", "5"}
         };
         
         Map<String, int[]> resultMap = new HashMap<String, int[]>();
         for (int i = 0; i < array.length;i++) {
             if (resultMap.containsKey(array[i][0])) {
                 int[] valueArray = resultMap.get(array[i][0]);
                 int[] temp = new int[array[i].length - 1];
                 for (int j = 0; j < valueArray.length; j++) {
                     temp[j] = valueArray[j] + Integer.parseInt(array[i][j + 1]);
                 }
                 resultMap.put(array[i][0], temp);
             } else {
                 int[] temp = new int[array[i].length - 1];
                 for (int j = 1; j < array[i].length; j++) {
                       temp[j - 1] = Integer.parseInt(array[i][j]) ;
                 }
                 resultMap.put(array[i][0], temp);
             }             
         }
        for (String date : resultMap.keySet()) {
            System.err.print(date);
            int[] temp = resultMap.get(date);
            for (int i = 0; i < temp.length; i++) {
                System.err.print(" " + temp[i]);
            }
            System.err.println("");
        }

    }


Согласен, что она решена в лоб, можно конечно решить её для любого столбца, но вот так вот. Если нужно, могу сделать для любого столбца
Re[2]: Группировка в двухмерном массиве
От: Аноним  
Дата: 02.07.10 11:08
Оценка:
Здравствуйте, telal, Вы писали:

T>Здравствуйте, corbon, Вы писали:


C>>Всем привет!

C>>Подскажите как лучше в Java реализовать группировку в двухмерном массиве с суммированием значений.
C>>Имеем матрицу вида:
C>>12.01.2010 32 45 12
C>>12.01.2010 3 33 56
C>>14.01.2010 89 67 98
C>>11.01.2010 9 22 9
C>>12.01.2010 67 99 23
C>>13.01.2010 54 77 5

C>>необходимо привести к виду:

C>>12.01.2010 102 177 91
C>>14.01.2010 89 67 98
C>>11.01.2010 9 22 9
C>>13.01.2010 54 77 5

C>>Заранее спасибо!


T>В джаве нет документированных стандартных методов работы с матрицами, но можно решить задачу алгоритмически

T>Согласен, что она решена в лоб, можно конечно решить её для любого столбца, но вот так вот. Если нужно, могу сделать для любого столбца

Спасибо telal, уже разобрался
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.