不可不会的Map集合(3)

IdentityHashMap在比较两个元素时需要key完全相等(key1==key2),而普通的HashMap仅仅需要equals()返回true且hashcode值相同。其它性质与HashMap基本类似。

public class IdentityHashMapTest {
    public static void main(String[] args) {
        IdentityHashMap ihm = new IdentityHashMap();
        // 下两行添加两个元素
        ihm.put(new String("卡布奇诺"), 99);
        ihm.put(new String("卡布奇诺"), 90);
        // 下两行添加一个元素
        ihm.put("烧仙草", 18);
        ihm.put("烧仙草", 17);
        //{卡布奇诺=99, 烧仙草=17, 卡布奇诺=90}
        System.out.println(ihm);
    }
}

EnumMap专门应用于枚举类,内部通过数组来实现,这种实现形式紧凑、高效;EnumMap按照自然排序(枚举值在枚举类中定义顺序)对元素进行排序;不允许key为null值。

enum Season {
    SPRING, SUMMER, FALL, WINTER
}

public class EnumMapTest {
    public static void main(String[] args) {
        EnumMap ehm = new EnumMap(Season.class);
        ehm.put(Season.SUMMER, "夏日炎炎");
        ehm.put(Season.SPRING, "春暖花开");
        //{SPRING=春暖花开, SUMMER=夏日炎炎}
        System.out.println(ehm);
    }
}

HashMap是最常用的Map集合,能够提供快速的查询,Hashtable线程安全,带来性能损耗,同时过于古老,推荐使用Collections将HashMap变成线程安全进行替代。LinkedHashMap可以维护元素的插入顺序。TreeMap对集合元素进行了排序,可以通过toArray()生成key的数组,随后用binarySearch()对元素进行快速查找。EnumMap应用于枚举类,效率最高。

java全栈日日学 文章被收录于专栏

java全栈每日必学,不要高估自己一年能做的事,不要低估自己十年能做的事

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务