黑马程序员技术交流社区
标题:
这是小弟在Map集合时遇到的一些问题 希望大神帮忙解答...
[打印本页]
作者:
qq563426478
时间:
2015-3-1 18:23
标题:
这是小弟在Map集合时遇到的一些问题 希望大神帮忙解答...
一、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
这是错误我是菜鸟看不懂,求帮助。
我懂了谢谢各位了
作者:
alvis2015
时间:
2015-3-1 18:34
一,map.put(1,"a");完全可以,没有不适用的问题
二、用两种Map都可以
三、在循环中不能连续两次调用next方法,因为如果元素个数是奇数个的话,会发生越界
作者:
sofeel
时间:
2015-3-1 20:11
楼上正解
作者:
㏒假™面具
时间:
2015-3-1 22:39
第一题: JDK5以后可以这样存储,集合中存储的只能是对象,map.put(12,"sd"); 执行时,会将12自动装箱,封装成Integer对象
第二题: TreeMap集合会对key值按照字典顺序进行排序,而HashMap只会保证值的唯一性
第三题:在循环语句中不能调用两次next()方法。
hasNext()做了一次判断。第一次调用指向另一个对象,再次调用就是下一个对象了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2