1.定义Map集合
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "one");
map.put(2, "two");
map.put(3, "three");
map.put(4, "four");
map.put(5, "five");
2.拿到map集合后进行遍历
根据需求选择遍历方式
(1) 只需获取所有的key,最佳方案如下:
//获取所有的key
for (Integer key : map.keySet()) {
Log.e(TAG, "key-------------: " + String.valueOf(key));
}
优点:比entrySet遍历要快,代码简洁
(2) 只需获取所有的value,最佳方案如下:
//获取所有的value
for (String value : map.values()) {
Log.e(TAG, "value-----------: " + value);
}
优点:比entrySet遍历要快,代码简洁
(3) 当同时需要key和value时
方法一:
重复(1)和(2)的两次遍历, 分别获取keys和values
缺点:需要两次遍历。
方法二:
通过键找值遍历
for (Integer key : map.keySet()) {//在for-each循环中遍历keys
String value = map.get(key);
System.out.println(key+"========"+value);
}
缺点:根据键取值是耗时操作,效率非常的慢, 所以不推荐
方法三:
通过Map.entrySet遍历key和value
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
优点:代码简洁,效率高,推荐使用
方法四:
使用Iterator遍历
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
缺点:代码比起前面几个方法并不简洁。
优点:当遍历的时候,如果涉及到删除操作,建议使用Iterator的remove方法,因为如果使用foreach的话会报错。
网友评论