A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一、Map map=new HashMap();
map.put(12,"sd");
为什么提示Map中的put(Object,Object)方法对于(int,String)不适用?

二、"sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数。
希望打印的结果:a(1)c(2).....
是不是一定要用TreeMap  用HashMap可以吗?为什么?

三、import java.util.HashMap;
import java.util.Iterator;

public class MapTest
{
public static void main(String[] args)
{
HashMap map = new HashMap();

map.put("a", "zhangsan");
map.put("b", "lisi");
map.put("d", "wangwu");
map.put("e", "zhaoliu");
map.put("f", "yangqi");

for(Iterator iter = map.keySet().iterator();iter.hasNext();)
{
System.out.println(iter.next());
System.out.println( map.get(iter.next()));

}

}
中的
System.out.println(iter.next());
System.out.println( map.get(iter.next()));
如果注释一行运行一行都能成功,两个放一起就不成功了,为什么,求高手指点Exception in thread "main" java.util.NoSuchElementException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at fx.MapTest.main(MapTest.java:23)
f=wangwu
e=lisi
这是错误我是菜鸟看不懂,求帮助。
我懂了谢谢各位了

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1

查看全部评分

3 个回复

倒序浏览
一,map.put(1,"a");完全可以,没有不适用的问题
二、用两种Map都可以
三、在循环中不能连续两次调用next方法,因为如果元素个数是奇数个的话,会发生越界
回复 使用道具 举报
楼上正解
回复 使用道具 举报
第一题: JDK5以后可以这样存储,集合中存储的只能是对象,map.put(12,"sd");  执行时,会将12自动装箱,封装成Integer对象
第二题: TreeMap集合会对key值按照字典顺序进行排序,而HashMap只会保证值的唯一性

第三题:在循环语句中不能调用两次next()方法。
             hasNext()做了一次判断。第一次调用指向另一个对象,再次调用就是下一个对象了

评分

参与人数 1黑马币 +1 收起 理由
万合天宜 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马