Мне тяжело складывать голову вокруг следующей ситуации.Лучший способ объяснить это может быть на примере
У меня есть картаобъект.Допустим, он содержит следующие данные:
ColumnA['abc','def']
ColumnB['efg','hij','klm']
ColumnC['nop']
ColumnD['qrs','tuv','wxy','zzz']
Я пытаюсь сгенерировать следующий вывод:
Row1[abc,efg,nop,qrs]
Row2[abc,efg,nop,tuv]
Row3[abc,efg,nop,wxy]
Row4[abc,efg,nop,zzz]
Row5[abc,hij,nop,qrs]
Row6[abc,hij,nop,wxy]
etc...
Так что в этом случае будет всего 24 строки.
Однако число столбцов и строк является динамическим.Я чувствую, что это нужно каким-то образом сделать рекурсивно, но я не уверен, с чего начать.
Любая помощь будет оценена.
Обновление - я создал древовидную структуру, которая, кажется, работает.
DefaultMutableTreeNode root = new DefaultMutableTreeNode();
Set<DefaultMutableTreeNode> curNodes = new HashSet<DefaultMutableTreeNode>();
curNodes.add(root);
final Set<Column> keys = map.keySet();
for (final Column key : keys) {
final Set<Row> rowSet = map.get(key);
Set<DefaultMutableTreeNode> tmpNodes = new HashSet<DefaultMutableTreeNode>();
for (final Row row : rowSet) {
DefaultMutableTreeNode curNode = new DefaultMutableTreeNode();
curNode.setUserObject(row);
tmpNodes.add(curNode);
for (DefaultMutableTreeNode n : curNodes) {
n.add(curNode);
}
}
curNodes = tmpNodes;
}