группировка данных в Java - PullRequest
       2

группировка данных в Java

2 голосов
/ 16 августа 2010

есть ли где-нибудь, мы можем сгруппировать подобные данные в Java?

Я хочу сгруппировать все данные с одинаковым идентификатором и распечатать их.

Я запрашиваю данные, используя jdbc иискал библиотеку, которую я мог бы использовать для этого.

Есть идеи?спасибо

Ответы [ 3 ]

4 голосов
/ 16 августа 2010

Используйте Map<GroupID, List<Data>>.

Map<Long, List<Data>> groups = new HashMap<Long, List<Data>>();
while (resultSet.next()) {
    Long groupId = resultSet.getLong("groupId");
    String col1 = resultSet.getString("col1");
    String col2 = resultSet.getString("col2");
    // ...
    List<Data> group = groups.get(groupId);
    if (group == null) {
        group = new ArrayList<Data>();
        groups.put(groupId, group);
    }
    group.add(new Data(groupId, col1, col2 /* ... */));
}

Вы также можете просто сделать его свойством другого (родительского) компонента.

Смотри также:

0 голосов
/ 16 августа 2010

Вы ищете предложение SQL ORDER BY?

SELECT columns
WHERE  criteria
ORDER BY id ASC;

Это даст вам все данные в ваших критериях и упорядочит их по столбцу id, что естественно означает, что все строки с одинаковым идентификатором будут появляться последовательно.

0 голосов
/ 16 августа 2010

В идеале вы должны использовать выражение where в вашем запросе SQL, чтобы ограничить возвращаемые данные идентификатором, о котором идет речь:

select *
from table
where id = 'xxxxxx'

Конечно, если вы будете распечатывать данные для всех идентификаторов, это может быть плохим выбором, так как тогда ваше приложение будет выполнять несколько SQL-запросов, что, как правило, приведет к снижению производительности.

Что касается группировки данных в Java, взгляните на java.util.HashMap (или любой из классов контейнеров, которые реализуют интерфейс Map). HashMap - это контейнер пар ключ-значение. В вашем случае «ключ» может быть строкой (или любым другим типом данных), представляющим ваш идентификатор, а «значение» может быть объектом, содержащим данные, связанные с ключом идентификатора (т. Е. новый класс, который вы определяете, чтобы помочь вам управлять данными)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...