常用的Map集合的遍历(四种)
Map这个东西我们在开发中会经常使用,因此在面试过程中会问到关于Map的遍历,所以我分享一下我经常用到的Map的遍历,如有错误还请个位指正!
1、通过键找值
set< K > keySet() {}
- 获取所有键的集合
- 遍历键的集合,获取到每一个键
- 根据键找值
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
//添加元素
map.put("卡卡", "小卡") ;
map.put("牛牛", "小牛") ;
map.put("堂堂", "小堂") ;
map.put("涛涛", "小涛") ;
//获取所有的键的集合
Set<String> set = map.keySet() ;
for(String key :set) {
//通过键获取值 V get(Object key)
String value = map.get(key) ;
System.out.println(key+"="+value);
}
}
2、根据键值对对象找键和值
public Set<Map.Entry<K,V>> entrySet()
Map.Entry<K,V>接口中:K getKey():获取键、V getValue():获取值;
- 获取所有键值对对象的集合
- 遍历键值对对象的集合,获取到每一个键值对对象
- 根据键值对对象找键和值
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>() ; //HashMap:哈希表(元素唯一,无序!)
//添加元素
map.put("卡卡", "小卡") ;
map.put("牛牛", "小牛") ;
map.put("堂堂", "小堂") ;
map.put("涛涛", "小涛") ;
//通过map集合获取所有的键值对对象
Set<Map.Entry<String, String>> entrySet = map.entrySet() ;
for(Map.Entry<String, String> entry:entrySet ) {
//通过entry所有的键值对对象
String key = entry.getKey() ;
String value = entry.getValue() ;
System.out.println(key+"="+value);
}
}
3、通过迭代器遍历
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>() ; //HashMap:哈希表(元素唯一,无序!)
//添加元素
map.put("卡卡", "小卡") ;
map.put("牛牛", "小牛") ;
map.put("堂堂", "小堂") ;
map.put("涛涛", "小涛") ;
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<String, String> entry = iterator.next();
System.out.println("key="+entry.getKey()+" ; value="+entry.getValue());
}
}
4、使用lambda表达式
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>() ; //HashMap:哈希表(元素唯一,无序!)
//添加元素
map.put("卡卡", "小卡") ;
map.put("牛牛", "小牛") ;
map.put("堂堂", "小堂") ;
map.put("涛涛", "小涛") ;
map.forEach((k,v)-> System.out.println("key="+k+" ; value="+v));
}