往hashmap中存数据,如何解决重复问题--2个问题

cnhuai 2008-05-30 06:59:44
问题一:
往hashmap中存数据
一个键值KEY,一个value
如果想把下面的值存入
KEY:1000 value:shanghai
KEY:1001 value:beijing
KEY:1002 value:guangdong
KEY:1000 value:nanjing

想在 hashmap中是这样的效果:
KEY:1000 value:shanghainanjing
KEY:1001 value:beijing
KEY:1002 value:guangdong


问题二:Iterator it=set.iterator();
while(it.hasNext())
{
Map.Entry me=(Map.Entry)it.next();
System.out.println(me.getKey()+":"+me.getValue()+":"+me.hashCode());
}
把这个代码放在1位置,可以执行,放在2位置就不执行,在2位置it.hasNext()不起作用

public static void main(String[] args){
HashMap hm=new HashMap();
Set set=hm.entrySet();
try{
.................
hm.put("one","aaa");
hm.put("two","bbb");
hm.put("three","ccc");
............................1------------
}

try{
for()
{

----2------

}
}


}
...全文
1635 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy2419 2008-05-30
  • 打赏
  • 举报
回复
学习了……
aipb2008 2008-05-30
  • 打赏
  • 举报
回复
Map hm = new HashMap<Integer,List<String>>;

这样满足你的要求。
tavor 2008-05-30
  • 打赏
  • 举报
回复
噢,第二个,我好像明白了
Iterator在遍历完之后,要想再次重新遍历的话,需要再次得到hashmap的iterator
比如:

Iterator iter = hm.keySet().iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
}
iter = hm.keySet().iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
}
favorite7w 2008-05-30
  • 打赏
  • 举报
回复
把Set set=hm.entrySet(); 这句直接放在2的位置那试试?
tavor 2008-05-30
  • 打赏
  • 举报
回复
第一个,这样比较好,如果不存在相同的KEY再往里面放,存在的话,则加起来放

HashMap hm = new HashMap();
if(!hm.containsKey(key))
{
hm.put(key, value);
}
else
{
hm.put(key, hm.get(key)+value);
}


第二个没看懂
palm_civet 2008-05-30
  • 打赏
  • 举报
回复
第二题信息不够
palm_civet 2008-05-30
  • 打赏
  • 举报
回复
第一题

public void add(String key, String value) {
if(map.get(key) == null) {map.put(key,value)}
else map.put(key, ((String)map.get(key)) + value);
}

62,634

社区成员

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

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