第3章-003节
一、get⽅法
相⽐较于put⽅法,get⽅法则简单很多。其过程就是⾸先通过hash()⽅法求得key的哈希值,然后
根据hash值得到index索引(上述两步所⽤的算法与put⽅法都相同)。然后迭代链表,返回匹配
的key的对应的value;找不到则返回null。
public synchronized V get(Object key) {
Entry tab[] = table;
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
for (Entry<K,V> e = tab[index] ; e != null ; e = e.next) {
if ((e.hash == hash) && e.key.equals(key)) {
return e.value;
}
}
return null;
}
二、遍历⽅式
Hashtable有多种遍历⽅式:
//1、使⽤keys()
Enumeration<string> en1 = table.keys();
while(en1.hasMoreElements()) {
en1.nextElement();
}
//2、使⽤elements()
Enumeration<string> en2 = table.elements();
while(en2.hasMoreElements()) {
en2.nextElement();
}
//3、使⽤keySet()
Iterator<string> it1 = table.keySet().iterator();
while(it1.hasNext()) {
it1.next();
}
//4、使⽤entrySet()
Iterator<Entry<String, String>> it2 = table.entrySet().iterator();
while(it2.hasNext()) {
it2.next();
}</string></string></string>
大家一起学习丫~
主要讲解java集合相关的概念、原理和部分面试题。 共计11章。 不断更新中。。。 (摘自某大佬)