迭代hashmap
可能重复:
如何迭代Map中的每个条目?
我如何迭代<String,POJO>的地图?
我写了下面这段代码,并且坚持迭代hashmap。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
class demo
{
public static void main(String v[]) {
ArrayList<String> contactIds = new ArrayList<String>();
contactIds.add("2");
contactIds.add("3");
HashMap names = new HashMap();
names = getNames(contactIds);
// I want to get the total size of the hashmap - names
// for ex now there are 6 elements inside hashmap.
// How can I get that count?
}
private static HashMap getNames(ArrayList contactIds) {
HashMap names = new HashMap();
String params = null;
List<String> list = new ArrayList<String>();
for(int i=0; i<contactIds.size();i++) {
params = contactIds.get(i).toString();
list.add(0,"aer-1");
list.add(1,"aer-2");
list.add(2,"aer-3");
names.put(params,list) ;
}
return names;
}
}
在这段代码中,地图中有六个元素,现在在主要方法中,我如何迭代地图并获得总数?
谢谢。
你的问题被问及 - 答案 - 在这里:
如何有效地遍历Map中的每个条目?
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + "/" + entry.getValue());
}
看看JavaDoc。 您正在寻找HashMap.size()
的总数和HashMap.values()
所有在地图中的值,或HashMap.entries()
为每对键和值。
'Map'数据结构不是Collection对象,而是Sets。
迭代Map的最常见方法是使用底层的.entrySet方法。
// For each loop
for ( Entry<String, String> entry : names ) {
System.out.println( String.format( "(%s, %s)", entry.getKey(), entry.getValue() ) );
}
// Iterator
Iterator iterator = names.entrySet().iterator
while( iterator.hasNext() ){
Entry entry = iterator.next()
System.out.println( String.format( "(%s, %s)", entry.getKey(), entry.getValue() ) );
}
如果有兴趣查找Map节点的总数,请使用.size()方法。
编辑:
既然你想要在地图中存储每个列表的总大小,你可以做这样的事情。
Iterator iterator = names.entrySet().iterator
int count = 0;
while( iterator.hasNext() ){
Entry entry = iterator.next()
count += entry.getValue().size()
}
链接地址: http://www.djcxy.com/p/23969.html