HashTable和HashMap的遍历方法对比
HashTable | HashMap |
---|---|
keySet() | keySet() |
entrySet() | entrySet() |
value() | elements() |
iterator | iterator |
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
public class Test {
public static void main(String[] args) {
int[] arr = {0,1,2,3,4,5};
HashMap<Integer, Integer> map = new HashMap<>();
Hashtable<Integer, Integer> table = new Hashtable<>();
// 添加元素
for(int i = 0; i < 10; i++) {
map.put(arr[i], arr[i]);
table.put(arr[i], arr[i]);
}
//HashMap遍历
// 1.使用keySet()
for(Integer key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
// 2.使用entrySet()
for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
// 3.使用value(),但不能得到key
for(Integer i : map.values()) {
System.out.println(i);
}
// 4.使用Iterator
Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
while(it.hasNext()) {
Map.Entry<Integer, Integer> entry = it.next();
System.out.println(entry.getKey() + " : " + entry.getValue());
}
//Hashtable遍历
// 1.使用keySet()
for(Integer key : table.keySet()) {
System.out.println(key + " : " + table.get(key));
}
// 2.使用keys() + Enumeration
Enumeration<Integer> en1 = table.keys();
while(en1.hasMoreElements()) {
int key = en1.nextElement();
System.out.println(key + " : " + table.get(key));
}
// 3.使用entrySet() + iterator
Iterator<Map.Entry<Integer, Integer>> it1 = table.entrySet().iterator();
while(it1.hasNext()) {
Map.Entry<Integer, Integer> entry = it1.next();
System.out.println(entry.getKey() + " : " + entry.getValue());
}
// 4.使用elements()
Enumeration<Integer> en2 = table.elements();
while(en2.hasMoreElements()) {
System.out.println(en2.nextElement());
}
}
}