《数据篇》Map

遍历Map的四种方法

链接:https://blog.csdn.net/qq_19314763/article/details/79049070

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapTest {
	public static void main(String[] args) {
		Map<Integer, String> map = new HashMap<>();
		//map集合存入数据
		map.put(1, "第一个value");
		map.put(2, "第二个value");
		map.put(3, "第三个value");

		//通过keySet取出map数据[for-each循环]
		System.out.println("-------[for-each循环遍历]通过keySet取出map数据-------");
		Set<Integer> keys = map.keySet();   //此行可省略,直接将map.keySet()写在for-each循环的条件中
		for(Integer key:keys){
			System.out.println("key值:"+key+" value值:"+map.get(key));
		}

		//通过EntrySet取出map数据[for-each循环]
		System.out.println("-------[for-each循环遍历]通过EntrySet取出map数据-------");
		Set<Entry<Integer, String>> entrys = map.entrySet();  //此行可省略,直接将map.entrySet()写在for-each循环的条件中
		for(Entry<Integer, String> entry:entrys){
			System.out.println("key值:"+entry.getKey()+" value值:"+entry.getValue());
		}

		//通过keySet取出map数据[Iterator遍历]
		System.out.println("-------[Iterator循环遍历]通过keySet取出map数据---------");
		Iterator<Integer> it = map.keySet().iterator();  //map.keySet()得到的是set集合,可以使用迭代器遍历
		while(it.hasNext()){
			Integer key = it.next();
			System.out.println("key值:"+key+" value值:"+map.get(key));
		}

		//通过EntrySet取出map数据[Iterator遍历]
		System.out.println("-------[Iterator循环遍历]通过EntrySet取出map数据---------");			
		Iterator<Entry<Integer, String>> iterator = map.entrySet().iterator();  //map.entrySet()得到的是set集合,可以使用迭代器遍历
		while(iterator.hasNext()){
			Entry<Integer, String> entry = iterator.next();
			System.out.println("key值:"+entry.getKey()+" value值:"+entry.getValue());
		}
	}	
}

遍历Map的四种方法(更好)

链接:https://c.biancheng.net/view/6872.html

1)在 for 循环中使用 entries 实现 Map 的遍历(最常见和最常用的)。

public static void main(String[] args) {
	Map<String, String> map = new HashMap<String, String>();
	map.put("Java入门教程", "http://c.biancheng.net/java/");
	map.put("C语言入门教程", "http://c.biancheng.net/c/");
	for (Map.Entry<String, String> entry : map.entrySet()) {
		String mapKey = entry.getKey();
		String mapValue = entry.getValue();
		System.out.println(mapKey + ":" + mapValue);
	}
}

2)使用 for-each 循环遍历 key 或者 values,一般适用于只需要 Map 中的 key 或者 value 时使用。性能上比 entrySet 较好。

Map<String, String> map = new HashMap<String, String>();
map.put("Java入门教程", "http://c.biancheng.net/java/");
map.put("C语言入门教程", "http://c.biancheng.net/c/");
// 打印键集合
for (String key : map.keySet()) {
	System.out.println(key);
}
// 打印值集合
for (String value : map.values()) {
	System.out.println(value);
}

3)使用迭代器(Iterator)遍历

Map<String, String> map = new HashMap<String, String>();
map.put("Java入门教程", "http://c.biancheng.net/java/");
map.put("C语言入门教程", "http://c.biancheng.net/c/");
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);
}

4)通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作。

for(String key : map.keySet()){
	String value = map.get(key);
	System.out.println(key+":"+value);
}
posted @ 2024-02-04 16:45  Fusio  阅读(7)  评论(0编辑  收藏  举报