HashMap、HashTable、TreeMap学习篇
1. HashMap基本使用篇
1.1 是否允许空值、空键
- HashMap允许空值、空键
- HashMap允许同时存在空值、空键
- HashMap不允许键重复,如果重复,新值覆盖旧值。
1.2 HashMap的遍历
- 通过keySet方法实现遍历,一次性把map集合中的所有键放入Set集合中再遍历,可使用增强型for循环。
Set<String> keySet=hashMap.keySet();
- 使用entrySet方法实现遍历,将集合中的所有键+值取出放入Set集合中,再进行遍历。
Set<Map.Entry<String,String>> entry=hashMap.entrySet();
注意:使用keySet方法遍历时先存储键值,再去循环查找值value,相当于两次循环。效率较低。
1.3 常用方法
- put:添加新元素
- get:利用键查找值
1.4 程序示例
package Map;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class TestHashMap {
public static void main(String[] args) {
HashMap<String,String> hashMap=new HashMap<>();
hashMap.put("重庆985","重庆大学");
hashMap.put("重庆211","西南大学");
hashMap.put(null,"键为空");
hashMap.put("值为空",null);
hashMap.put(null,null);
// System.out.println(hashMap.get("重庆211"));
Set<String> keySet=hashMap.keySet();
System.out.println("使用KeySet方法遍历HashMap");
for (String keyset:keySet){
System.out.println("键: "+keyset+" 值: "+hashMap.get(keyset));
}
System.out.println("-----------------------------");
for (String k:hashMap.keySet()){
System.out.println("键: "+k+" 值: "+hashMap.get(k));
}
System.out.println("-----------------------------");
System.out.println("使用entrySet方法遍历HashMap");
Set<Map.Entry<String,String>&g