java中遍历Map的常用方法总结
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= " key " and value= " map.get(key));
}
//第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " entry.getKey() " and value= " entry.getValue());
}
//第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " entry.getKey() " and value= " entry.getValue());
}
//第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " v);
}
}
第一种:
最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很重要,这是我们最熟悉的。
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
/**
* 1.把值放到一个集合里,然后遍历集合
*/
public class TraversalMap1 {
private static Map<Integer, String> map;
private static TraversalMap1 getMap(){
map = new HashMap<Integer, String>();
for(int i = 0 ; i < 10 ; i ){
if(map.isEmpty()) map.put(i, "String " i);
else if(map.get(i) == null) map.put(i,"String " i) ;
}
return null;
}
public static void main(String[] args){
getMap();
Collection<String> c = map.values();
Iterator i = c.iterator();
for(; i.hasNext() ;){
System.out.println(i.next());//遍历出map内的所有value
}
}
}
第二种:
利用keyset进行遍历,它手优点在于可以根据你所想要的key值得到你想要的values,更具灵活性。
import java.util.Set;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
/**
* 2.把key放到一个集合里,遍历key值同时根据key得到值
*/
public class TraversalMap2 {
private static Map<Integer, String> map;
private static TraversalMap2 getMap(){
map = new HashMap<Integer, String>();
for(int i = 0 ; i < 10 ; i ){
if(map.isEmpty()) map.put(i, "String " i);
else if(map.get(i) == null) map.put(i,"String " i) ;
}
return null;
}
public static void main(String[] args){
getMap();
Set set = map.keySet();
Iterator i = set.iterator();
for(; i.hasNext() ;){
System.out.println(i.next());//遍历出map内的所有key
}
}
}
第三种:
比较复杂的一种遍历在这里,呵呵~~它很暴力哦,它的灵活性太强了,想得到什么就能得到什么~~
import java.util.Map;
import java.util.HashMap;
/**
* 3.把一个map对象放到放到entry里,然后根据entry同时得到key和value
*/
public class TraversalMap3 {
private static Map<Integer, String> map;
private static int num = 0 ;
private static String str = "";
private static TraversalMap3 getMap(){
map = new HashMap<Integer, String>();
for(int i = 0 ; i < 10 ; i ){
if(map.isEmpty()) map.put(i, "String " i);
else if(map.get(i) == null) map.put(i,"String " i) ;
}
return null;
}
public static void main(String[] args){
getMap();
for(Map.Entry<Integer, String> entry : map.entrySet()){
num = entry.getKey();
str = entry.getValue();
System.out.println("the map key is : " num " || the value is : " str);//显示出map的key和value
}
}
}
您可能感兴趣的文章:
java中关于Map的几大问题总结
java中遍历Map的常用方法总结
Go range实现原理及性能优化剖析
golang for range原理(转载)
golang key map 所有_golang系列——高级语法之map
golang遍历时修改被遍历对象
基于jquery循环map功能的代码
Golang从入门到放弃200618--Map(1)Map的初始化和基本操作
php遍历数组之list foreach each用法总结
golang map多层嵌套使用及遍历方法汇总