Map集合的遍历方式(迭代方式)
1、可以获得Map实例中所有的Key组成Set集合(keySet()),
随后使用迭代器iterator对key组成的Set集合进行迭代或者使用for-each方式进行迭代
2、可以获得Map实例中的所有Entry组成的Set集合(entrySet)(被称作键值集),
每一个Entry实例中都包含了key和value,
随后使用迭代器iterator对Entry组成的Set集合(entrySet)进行迭代或者使用for-each方式进行迭代
3、可以获得Map实例中所有的value组成Collection集合(被称作值集),
随后使用迭代器iterator对value组成的Collection集合进行迭代或者使用for-each方式进行迭代;
但是Map中只提供了根据key获取value的支持,没有根据value获取key的支持
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class MapTest {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
System.out.println("第一种:通过Map.keySet()遍历key和value:");
for (String key : map.keySet()) {
String value = map.get(key).toString();
System.out.println("key:" + key + " value:" + value);
}
System.out.println("第一种:通过Map.keySet()使用iterator遍历key和value:");
Iterator<String> iter = map.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
Object value = map.get(key);
System.out.println("key:" + key + " value:" + value);
}
System.out.println("第二种:通过Map.entrySet()使用iterator遍历key和value:");
Iterator<Entry<String, Object>> it = map.entrySet().iterator();
while (it.hasNext()) {
Entry<String, Object> entry = it.next();
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
}
System.out.println("----------------------------------");
System.out.println("第二种:通过Map.entrySet()遍历key和value");
for (Map.Entry<String, Object> m : map.entrySet()) {
System.out.println("key:" + m.getKey() + " value:" + m.getValue());
}
System.out.println("----------------------------------");
System.out.println("第三种:通过Map.values()遍历所有的value,但不能遍历key");
Collection<Object> values = map.values();
for (Object value : values) {
System.out.println("key:" + value);
}
System.out.println("- - - - - - - - - - - - - -");
Iterator<Object> itor = values.iterator();
while (itor.hasNext()) {
Object value = itor.next();
System.out.println("key:" + value);
}
}
}