请稍侯

遍历HashSet和HashMap

12 April 2015

遍历HashSet

Set<String> set = new HashSet<String>();
set.add("123");
set.add("abc");

// 方法一:使用迭代器
for(Iterator<String> i = set.iterator(); i.hasNext(); ) {
    System.out.println(i.next());
}

// 方法二:使用 JDK 5 新增的 foreach 循环,只有数组和实现了 Iterable 接口的类才能这样写。
// 冒号左边是一个局部变量,表示这个 set 中被迭代出来的元素,右边是一个数组或者是实现了 Iterable 
// 接口的类。
for(String str : set) {
    System.out.println(str);
}

遍历HashMap

Map<String, String> map = new HashMap<String, String>();
map.put("1", "a");
map.put("2", "b");

// 方法一:通过 map 的 keySet 集,获得 map 中所有 key 的 set 对象
for(Iterator<String> i = map.keySet().iterator(); i.hasNext(); ) {
    String key = i.next();
    String value = map.get(key);
    System.out.println(key + " --> " + value);
}

// 方法二:通过 map 的 entrySet,获得 map 中所有键值对的 set 对象
for(Iterator<Map.Entry<String, String>> i = map.entrySet().iterator(); i.hasNext(); ) {
    Map.Entry<String, String> entry = i.next();
    System.out.println(entry.getKey() + " --> " + entry.getValue());
}

// 方法三:使用 foreach 循环,并通过 map 的 entrySet 遍历
for(Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " --> " + entry.getValue());
}