hashmap的遍历?

发布网友 发布时间:2022-04-22 08:38

我来回答

3个回答

热心网友 时间:2023-12-15 23:33

方法一

在for-each循环中使用entries来遍历

这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。

Map<Integer, Integer> map = new HashMap<Integer, Integer>();


for (Map.Entry<Integer, Integer> entry : map.entrySet()) {

System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());


}

注意:for-each循环在java 5中被引入所以该方法只能应用于java 5或更高的版本中。如果你遍历的

是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查

空引用。

方法二 在for-each循环中遍历keys或values。

如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

//遍历map中的键

for (Integer key : map.keySet()) {

System.out.println("Key = " + key);

}

//遍历map中的值

for (Integer value : map.values()) {

System.out.println("Value = " + value);

}

该方法比entrySet遍历在性能上稍好



请添加详细解释

热心网友 时间:2023-12-15 23:34

public static void main(String args[]){
HashMap<String, String>hm=new HashMap<String, String>();
hm.put("100","001");
hm.put("200","002");
hm.put("300","003");
hm.put("400","004");
hm.put("500","005");
hm.put("600","006");
hm.put("700","007");
hm.put("800","008");
hm.put("900","009");

Iterator it = hm.entrySet().iterator();
while(it.hasNext()){
Entry obj = (Entry) it.next();
System.out.println(obj.getKey()+" "+obj.getValue());
}
}

要按顺序输出的话用TreeMap

热心网友 时间:2023-12-15 23:34

方式1
Iterator iterator = hm.keySet().iterator();
while(iterator.hasNext()) {
System.out.println(hm.get(iterator.next()));
}
方式2
Set set = hm.entrySet() ;
java.util.Iterator it = hm.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
// entry.getKey() 返回与此项对应的键
// entry.getValue() 返回与此项对应的值
System.out.println(entry.getValue());
}

比较建议方式一的做法

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com