Map相关

循环输出HashMap内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private static void loogerHashMapContent() {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("carrier", "carrier1");
hashMap.put("province", "province1");
hashMap.put("ismodem", "ismodem1");
hashMap.put("state", "state1");


Iterator<Entry<String, Object>> iterator = hashMap.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, Object> entry = iterator.next();
System.out.print(entry.getKey()+":"+entry.getValue()+",");
}
System.out.println();
}

HashMap遍历

原文地址

第一种:

1
2
3
4
5
6
7
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}

效率高,以后一定要使用此种方式!
第二种:

1
2
3
4
5
6
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}

效率低,以后尽量少使用!

HashMap遍历

第一种:for each map.entrySet()

1
2
3
4
5
Map<String, String> map = new HashMap<String, String>();
for (Entry<String, String> entry : map.entrySet()) {
entry.getKey();
entry.getValue();
}

第二种:显式调用map.entrySet()的集合迭代器

1
2
3
4
5
6
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String, String> entry = iterator.next();
entry.getKey();
entry.getValue();
}

第三种:for each map.keySet(),再调用get获取

1
2
3
4
Map<String, String> map = new HashMap<String, String>();
for(String key: map.keySet()){
map.get(key);
}

第四种:for each map.entrySet(),用临时变量保存map.entrySet()

1
2
3
4
5
Set<Entry<String, String>> entrySet = map.entrySet();
for (Entry<String, String> entry : entrySet) {
entry.getKey();
entry.getValue();
}

经过1万、10万、100万、200万的循环遍历,比较它们的耗时,得出结论:

  1. 既需要key也需要value,直接用
1
2
3
4
5
Map<String, String> map = new HashMap<String, String>();
for (Map.Entry<String, String> entry : map.entrySet()) {
entry.getKey();
entry.getValue();
}
  1. 如果只是遍历key而无需value的话,可以直接用
1
2
3
4
Map<String, String> map = new HashMap<String, String>();
for (String key : map.keySet()) {
// key process
}

Map转url参数

1
2
3
4
5
6
7
8
9
10
11
12
13
private String convertToUrlParams(Map<String, Object> map) {
if (map == null || map.size() <= 0) {
return "";
}
StringBuilder stringBuilder = new StringBuilder();
for (Map.Entry<String, Object> entry : map.entrySet()) {
if (!TextUtils.isEmpty(stringBuilder)) {
stringBuilder.append("&");
}
stringBuilder.append(entry.getKey()).append("=").append(entry.getValue());
}
return stringBuilder.toString();
}