在Java中,Map凑集的特色因此键值对的形式存储数据,并且是无序的。常用的Map凑集类型有HashMap、TreeMap、LinkedHashMap、HashTable等,这些类型由于都实现了Map接口,以是都可以用以下的几个办法来进行遍历:
方法一:在for循环中利用entries实现Map的遍历此方法可以同时拿到key和value,也是用的比较多的一种方法
Map<String,String> map = new HashMap<String,String>();map.put(34;赤色","red");map.put("蓝色","blue");map.put("黄色","yellow");for(Map.Entry<String,String> entry : map.entrySet()){ String key = entry.getKey(); String value = entry.getValue(); System.out.println(key+":"+value);}
方法二:在for循环中遍历key或者value
此方法适用于只须要map中的key或者value时利用,在性能上比利用entrySet要好一些
Map<String,String> map = new HashMap<String,String>();map.put("赤色","red");map.put("蓝色","blue");map.put("黄色","yellow");//遍历key值for(String key : map.keySet()){ System.out.println(key);}//遍历value值for(String value : map.values()){ System.out.println(value);}
方法三:通过Iterator遍历
Map<String,String> map = new HashMap<String,String>();map.put("赤色","red");map.put("蓝色","blue");map.put("黄色","yellow");Iterator<Entry<String,String>> entries = map.entrySet().iterator();while(entries.hasNext()){ Entry<String,String> entry = entries.next(); String key = entry.getKey(); String value = entry.getValue(); System.out.println(key+":"+value);}
方法四:在for循环中同构get()方法遍历
这种方法相对来说效率较低,由于本身根据键来取值便是一个比较耗时的操作
Map<String,String> map = new HashMap<String,String>();map.put("赤色","red");map.put("蓝色","blue");map.put("黄色","yellow");for(String key : map.keySet()){ String value = map.get(key); System.out.println(key+":"+value);}