HashMap存储的是键值对,可以将key序列和value序列单独抽取出来。
HashMap的遍历方法:
第一种:抽取出key序列,将map中的所有key生成一个set。
HashMap<Integer,String> map = new HashMap<Integer,String>();
Set<Integer> keys = map.keySet();//返回的是一个set
然后得到它的迭代器,遍历元素。代码如下:
Iterator<Integer> ite1 = set.iterator();
while(ite1.hasNext()) {
System.out.println(map.get(ite1.next()).getString); }
或者用增强的for循环来遍历:
Iterator<Integer> ite1 = set.iterator();
for(Integer k:keys) {//把所有的键值用k接收
System.out.println(map.get(k).getString();
}
第二种:
//keySet返回包含键值的视图
Iterator<Integer> ite2 = map.keySet().iterator();
while(ite2.hasNext()) {
Integer key = ite2.next();//得到键值
System.out.println(map.get(key).getString());
}
第三种:
//keySet返回包含键值的视图
Iterator<Integer> ite2 = map.keySet().iterator();
while(ite2.hasNext()) {
Integer key = ite2.next();//得到键值
System.out.println(map.get(key).getString());
}
注意:使用values()抽取value序列,将map中的所有values生成一个Collection。
为什么一个生成Set,一个生成Collection?那是因为,key总是独一无二的,value允许重复。