HashMap<Integer, String> hashMap = new HashMap();
hashMap.put(2,"aa");
hashMap.put(5,"bb");
// 这里的Entry是Map内部类,所以写成Map.Entry相当于就是散列表中的链表中的Node
Set<Entry<Integer, String>> entrys = hashMap.entrySet(); // 获取集合中全部的entry对象
Iterator<Entry<Integer, String>> it = entrys.iterator();
while (it.hasNext()) {
Entry<Integer, String> entry = it.next(); // entry里面包含了key和value
Integer key = entry.getKey(); // 获取到Key
String value = entry.getValue(); // 获取到值
/** 输出结果是:
2--aa
5--bb
*/
System.out.println(key + "--" + value);
}
其中hashMap.entrySet()方法的源代码如下:
public Set<Map.Entry<K,V>> entrySet() {
Set<Map.Entry<K,V>> es;
return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;
}
扩展:从json对象中组装出来一个hashMap集合
List<Map<String,Object>> rows = new ArrayList<Map<String,Object>>();
for( Object obj : jsonArray ){
JSONObject jObject = ( JSONObject ) obj;
if( obj == null ){
continue;
}
// 实现逻辑是:先取出key放在一个set集合中,也就是去重
Set<String> keySet = jObject.keySet(); //
if( keySet == null || keySet.size() == 0 ){
continue;
}
// 然后又来定义一个HashMap<String,Object>集合,接着又分别遍历key跟取出key对应的值
Map<String,Object> row = new HashMap<String,Object>( keySet.size() );
for( String key : keySet ){
row.put( key, jObject.get( key )); // 组装成map集合
}
rows.add( row );
}
