Map——HashMap和HashTable
HashMap和HashTable都实现Map接口。HashMap允许键和值为null,但HashTable不行。两者的键都不能重复。
import java.util.HashMap;import java.util.Hashtable;public class MapTest {/** * @param args */public static void main(String[] args) {HashMap<String, String> hashMap = new HashMap<String, String>();hashMap.put("num1", "1");hashMap.put("num2", "2");hashMap.put("num3", "3");hashMap.put(null, "0");hashMap.put("num0", null);System.out.println(hashMap.get(null));System.out.println(hashMap.get("num0"));}}输出:
0null
HashMap允许键和值为空。
import java.util.HashMap;import java.util.Hashtable;public class MapTest {/** * @param args */public static void main(String[] args) {HashMap<String, String> hashMap = new HashMap<String, String>();hashMap.put("num1", "1");hashMap.put("num2", "2");hashMap.put("num3", "3");hashMap.put(null, "0");hashMap.put("num0", null);System.out.println(hashMap.get(null));System.out.println(hashMap.get("num0"));Hashtable<String, String> hashTable = new Hashtable<String, String>();hashTable.put("num0", null);hashTable.put(null, "0");}}结果出异常,不管是值为空,或者键为空都会出现异常。
常用的方法示例:
import java.util.HashMap;import java.util.Hashtable;public class MapTest {/** * @param args */public static void main(String[] args) {HashMap<String, String> hashMap = new HashMap<String, String>();hashMap.put("num1", "1");hashMap.put("num2", "2");hashMap.put("num3", "3");hashMap.put(null, "0");hashMap.put("num0", null);System.out.println(hashMap.get(null));System.out.println(hashMap.get("num0"));Hashtable<String, String> hashTable = new Hashtable<String, String>();hashTable.put("num0", "0");hashTable.put("num1", "1");hashTable.put("num2", "2");hashTable.put("num3", "3");System.out.println(hashMap.containsKey("num1"));System.out.println(hashMap.containsValue("1"));System.out.println(hashTable.containsKey("num1"));System.out.println(hashTable.containsValue("1"));}}输出:
0nulltruetruetruetrue