一、Set<k> keySet() 返回key数组
使用keySet() 获得Map集合的所有键名。执行For循环,通过Iterator.hasNext() 和 Iterator.next()获得每一个键名,再通过map.get(key)方法获得值value
@Test
public void test(){
Map<String, String> map = new HashMap<>();
map.put("hadoop", "hbase");
map.put("hbase", "hive");
map.put("mapreduce", "storm");
Set set = map.keySet();
for (Iterator iterator = set.iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
String value = String.valueOf(map.get(key));
System.out.println(key+" - "+value);
}
}
使用entrySet() 方法获得Map.Entry<k,v>,执行For循环,通过Iterator.hasNext() 和 Iterator.next() 获得每一个键名,再通过entry.getKey()和entry.getValue()方法获得key 和 value.
@Test
public void test(){
Map<String, String> map = new HashMap<>();
map.put("hadoop", "hbase");
map.put("hbase", "hive");
map.put("mapreduce", "storm");
Set set = map.entrySet();
for (Iterator iterator = set.iterator(); iterator.hasNext();) {
Map.Entry entry = (Entry) iterator.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
System.out.println(key + " - " + value);
}
}
三、Set<Map.Entry<K,V>> 另一种用法
@Test
public void test(){
Map<String, String> map = new HashMap<>();
map.put("hadoop", "hbase");
map.put("hbase", "hive");
map.put("mapreduce", "storm");
Set<Map.Entry<String, String>> set = map.entrySet();
for (Entry<String, String> entry : set) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + " - " + value);
}
}