java Map 一对多的处理

年轻简单 2013-06-08 11:55:04
我需要实现一个树排版.

Map<String,String> map = new HashMap<String,String>();
String[] nodes = new String[10];
for (int i = 0; i < nodes.length; i++) {
nodes[i] = new String();
}
map.put(nodes[0],nodes[1]);
map.put(nodes[0],nodes[2]);
map.put(nodes[0],nodes[3]);

Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
System.out.println("Key="+entry.getKey().getClass()+" Val="+entry.getClass());
}

打印的结果是这样的
Key=class java.lang.String Val=class java.util.HashMap$Entry
我需要的是这样的:
Key=class java.lang.String Val=class java.util.HashMap$Entry
Key=class java.lang.String Val=class java.util.HashMap$Entry
Key=class java.lang.String Val=class java.util.HashMap$Entry

是不是方法用错了.我需要一个对象连接多个对象..如下图形

求指点~非常感谢..
...全文
283 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huntor 2013-06-09
  • 打赏
  • 举报
回复
可以使用 Google Guava 中提供的 Mutltimap
xxxxJustDoIt 2013-06-09
  • 打赏
  • 举报
回复
map中的key是唯一的,你应该把nodes[1],nodes[2],nodes[3]放到nodes[0]这个key对应的value中,然后再拆分,输出,就跟3楼的写法一样
ghostkngiht 2013-06-09
  • 打赏
  • 举报
回复

Map<String,String[]> map = new HashMap<String,String[]>();
String[] nodes = new String[10];
    for (int i = 0; i < nodes.length; i++) {
         nodes[i] = new String();
    }
    map.put(nodes[0],new String[]{nodes[1],nodes[2],nodes[3]});
rumlee 2013-06-09
  • 打赏
  • 举报
回复
map里面保存的同一个key对应的对象是唯一的。 给node加上node[] childs属性不就可以解决了。 看看数据结构里面的树吧,就可以解决了。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧