为啥遍历商品集合的时候又可以用增强for循环?在前面一节获取键的集合的时候又只能用迭代器?求解?
这个是一样的,最后的结果就是遍历整个集合,你说的前面一节用迭代器,因为set集合实现了Serializable接口,所以可以用迭代器来遍历整个集合,当然你也可以用增强for循环,这都是可以的。
对于你说的,现在遍历商品集合时候用增强·for循环,其实你可以用迭代器,只不过的得到i.next()的类型是Map.Entry<items,number>,其他都是一样的,你可以试一下,祝你好运。
实际的原因是因为HashMAP为无序存放的存储结构,他没有索引一说,只能靠一个键值去查找对应的值,而代码中定义了一个有序的SET,目的就是为了使用索引来更方便的遍历,SET的范型设定为MAP.entry,而MAP.entry其实是一个类型,类似int之类的类型,这个类型就是以键值对的形式存放数据的类型,在hashmap中自带一个叫做entrySet()的方法,就是用于将里面存放的数据转换为这种类型,使他可以放在有序表中,作为表项,然后就可以使用有序表可用的FOR 去遍历索引,所以可以使用增强FOR。
不用客气
我试了一下,你看看