`

IdentityHashMap,HashMap,Hashtable

    博客分类:
  • JAVA
阅读更多
package test;

import java.util.HashMap;
import java.util.Hashtable;
import java.util.IdentityHashMap;
import java.util.Map;

public class MapTest {
public static void main(String[] args) {
//在 IdentityHashMap中,当且仅当(k1==k2)时,才认为两个键k1和k2相等
//此类设计仅用于其中需要引用相等性语义的罕见情况
Map<String, String> map = new IdentityHashMap<String, String>();
String str1 = new String("zhang");
String str2 = "zhang";
String str3 = new String("zhang");
map.put(str1, "1");
map.put(str2, "2");
map.put(str1, "3");
map.put(null, "4");
map.put(str3, null);
System.out.println("null:" + map.get(null));
System.out.println("map:" + map);
System.out.println("----------------------------");

//除了非同步和允许使用null之外,HashMap 类与Hashtable 大致相同
//HashMap,当且仅当满足下列条件时才认为两个键 k1 和 k2 相等:(k1==null ? k2==null : e1.equals(e2))
//也许你会想到这个疑问
//String s1 = null;
//String s2 = null;
//System.out.println(s1.equals(s2));以这样的方式直接判断两个字符串相等,而不需要(k1==null ? k2==null : e1.equals(e2))这么复杂,你可以试试
Map<String, String> map2 = new HashMap<String, String>();
map2.put(null, null);
map2.put(str1, "1");
map2.put(str2, "2");
map2.put(str3, "3");
System.out.println("map2:" + map2);
System.out.println(map2.get(null));
System.out.println("-----------------------------");

//HashTable实现了同步,且不允许使用null
Map<String, String> map3 = new Hashtable<String, String>();
//这样会报空指针错误
//map3.put(null, null);
//map3.put(null, "1");
//map3.put("2", null);
System.out.println(map3);
//这样会报空指针错误
//System.out.println(map3.get(null));
}
}
分享到:
评论

相关推荐

    JAVA中IdentityHashMap使用.rar

    JAVA中IdentityHashMap使用.rar

    java集合-IdentityHashMap的使用

    IdentityHashMap是Java中的一种特殊的哈希表实现,它使用"引用相等"(而不是"对象相等")来判断键的唯一性。具体来说,当且仅当两个键引用同一个对象时,它们被认为是相等的。

    javabitset源码-JerrySoundCode:杰瑞声码

    HashMap (done) Hashtable (done) Properties (done) LinkedHashMap (done) IdentityHashMap (done) TreeMap (done) WeakHashMap (done) 并发集合 ArrayBlockingQueue(done) LinkedBlockingDeque (done) ...

    Java 基础核心总结 +经典算法大全.rar

    Hashtable 类IdentityHashMap 类WeakHashMap 类 Collections 类集合实现类特征图 泛形 泛型的使用 用泛型表示类 用泛型表示接口泛型方法 泛型通配符 反射 Class 类Field 类Method 类ClassLoader 类 枚举 枚举特性 ...

    Java中大集合

    Java集合 HashMap类 IdentityHashMap类的使用 SortedMap类的基本使用 在map中创建自己的类的定义 随机数的集合 等等等等

    java集合框架 解析

    java集合框架 3.6. LinkedHashSet类 4. Map接口 4.1. Map.Entry接口 4.2. SortedMap接口 4.3. AbstractMap抽象类 4.4. HashMap类和TreeMap类 4.4.1. HashMap类 4.4.2. TreeMap类 ...4.6. IdentityHashMap类

    疯狂JAVA讲义

    7.6.1 HashMap和Hashtable实现类 271 7.6.2 SortedMap接口和TreeMap实现类 276 7.6.3 WeakHashMap实现类 279 7.6.4 IdentityHashMap实现类 280 7.6.5 EnumMap实现类 281 7.7 HashSet和HashMap的性能选项 282 ...

    Java开发详解.zip

    031312_【第13章:Java类集】_IdentityHashMap类笔记.pdf 031313_【第13章:Java类集】_SortedMap类笔记.pdf 031314_【第13章:Java类集】_集合工具类:Collections笔记.pdf 031315_【第13章:Java类集】_Stack类...

Global site tag (gtag.js) - Google Analytics