【发布时间】:2011-10-09 01:31:59
【问题描述】:
我很难理解以下情况。最好的解释方式可能是举例
我有一个 Map
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;
}
【问题讨论】:
-
也许从这种结构中创建一棵树更有意义,其中每一列都代表一个树级别?
标签: java arrays recursion matrix