课程
/后端开发
/Java
/JAVA遇见HTML——Servlet篇
为啥遍历商品集合的时候又可以用增强for循环?在前面一节获取键的集合的时候又只能用迭代器?求解?
2016-12-20
源自:JAVA遇见HTML——Servlet篇 2-8
正在回答
这个是一样的,最后的结果就是遍历整个集合,你说的前面一节用迭代器,因为set集合实现了Serializable接口,所以可以用迭代器来遍历整个集合,当然你也可以用增强for循环,这都是可以的。
对于你说的,现在遍历商品集合时候用增强·for循环,其实你可以用迭代器,只不过的得到i.next()的类型是Map.Entry<items,number>,其他都是一样的,你可以试一下,祝你好运。
weiiNice 提问者
实际的原因是因为HashMAP为无序存放的存储结构,他没有索引一说,只能靠一个键值去查找对应的值,而代码中定义了一个有序的SET,目的就是为了使用索引来更方便的遍历,SET的范型设定为MAP.entry,而MAP.entry其实是一个类型,类似int之类的类型,这个类型就是以键值对的形式存放数据的类型,在hashmap中自带一个叫做entrySet()的方法,就是用于将里面存放的数据转换为这种类型,使他可以放在有序表中,作为表项,然后就可以使用有序表可用的FOR 去遍历索引,所以可以使用增强FOR。
不用客气
我试了一下,你看看
举报
本门课程在JSP课程的基础上,深入介绍Servlet的基础知识
1 回答关于集合的循环
3 回答循环遍历怎么是这种写法?
5 回答遍历map时候sum+=i.getprice() * goods.get(i);
3 回答为什么都判断为商品了 还要强制类型转换成商品?
1 回答商品遍历不是很理解 Set<Map.Entry<Items, Integer>>