JAVA 映射HashMap和HashTable的区别和实用

/*
 * @author Mr liu
 * 
 * 基本格式:HashMap<key,vaule>
 * 面试题
 * HashMap和HashTable的区别:
 * 1、HashMap在HashTable的基础上去掉了contains的方法,比HashTable多了containsvalues和containkey的方法
 * 2、HashMap线程不安全(异步,效率高),HashTable线程安全(同步,效率比不上HashMap),其实用CurrentHashMap是最好的选择。(即同步了HashTable的安全,也综合了HashMap的效率)
 * 3、HashMap允许空键值,而HashTable不允许
 */
public class Mapping {

/**
     * @param args
     */
    public static void main(String[] args) {
        HashMap<StudentD,String> hm = new HashMap<StudentD,String>();
        hm.put(new StudentD("xiaobai",23),"shanghai");
        hm.put(new StudentD("wanghei",20),"beijing");
        hm.put(new StudentD("lisi",28),"shenzhen");
        hm.put(new StudentD("lisi",28),"shenzhen");
        //collenction:集合的接口 主要继承的接口是set和list。通过集合存储hm的value值
        Collection<String> collect=hm.values();
        //st就是hashmap的key值,key值是不重复且唯一的
        for (StudentD st : hm.keySet()) {
            for (String string : collect) {
                if(string.equals("shenzhen"))
                System.out.println(st+"---"+hm.get(st)+"value:"+string+"------st:"+st.name);
            }
            
        }

}

}
class StudentD{
    String name;
    int age;
    public StudentD(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "StudentD [name=" + name + ", age=" + age + "]";
    }
    
}

输出结果:

总结:HashTable和HashMap的实现原理几乎一样,差别无非是,映射对于自己开发都是比较方便的,告别了以前的for语句循环。大大提高了代码的高效率。可能有更多区别和大佬们的理解不一,希望各位大佬能多多评论,我也好多做些笔记。

JAVA 映射HashMap和HashTable的区别和实用相关推荐

  1. JAVA面试题:HashMap和Hashtable的区别

    HashMap和Hashtable的区别 1.共同点:都是双列集合,底层都是哈希算法 2.区别: * 1.HashMap是线程不安全的,效率高,JDK1.2版本 * Hashtable是线程安全的,效 ...

  2. java HashMap 与HashTable的区别

    HashMap 与HashTable的区别 HashMap与Hashtable的区别是面试中经常遇到的一个问题.这个问题看似简单,但如果深究进去,也能了解到不少知识.本文对两者从来源,特性,算法等多个 ...

  3. Java——集合(HashMap与Hashtable的区别)

    * HashMap和Hashtable的区别* 共同点:* 底层都是哈希算法,都是双列集合* 区别:* 1,HashMap是线程不安全的,效率高* Hashtable是线程安全的,效率低 * 2,Ha ...

  4. 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))

    1.Map集合概述和特点 1.需求:    根据学号获取学生姓名 2.Map接口概述     查看API可以知道:     将键映射到值的对象     一个映射不能包含重复的键     每个键最多只能 ...

  5. hashmap的特性?HashMap底层源码,数据结构?Hashmap和hashtable ConcurrentHashMap区别?

    1.hashmap的特性? 允许空键和空值(但空键只有一个,且放在第一位) 元素是无序的,而且顺序会不定时改变 key 用 Set 存放,所以想做到 key 不允许重复,key 对应的类需要重写 ha ...

  6. Java集合——HashMap、HashTable以及ConCurrentHashMap异同比较

    转发:https://www.cnblogs.com/zx-bob-123/archive/2017/12/26/8118074.html 0. 前言 HashMap和HashTable的区别一种比较 ...

  7. HashMap和Hashtable的区别--List,Set,Map等接口是否都继承自Map接口--Collection和Collections的区别...

    面试题: 1.HashMap和Hashtable的区别?HashMap:线程不安全,效率高,键和值都允许null值Hashtable:线程安全,效率低,键和值都不允许null值ArrayList代替V ...

  8. hashMap和hashTable的区别以及HashMap的底层原理?

    hashMap和hashTable的区别? 1.继承的父类不同 HashTable继承Dictionary类,而hashMap继承了AbstractMap类,但是二者都实现了map接口. 2.线程安全 ...

  9. 高薪程序员面试题精讲系列36之说说HashMap与HashTable的区别有哪些?

    一. 面试题及剖析 1. 今日面试题 HashMap与HashTable的区别有哪些? hash一致性算法了解吗?原理是什么?底层怎么实现的? ....... 2. 题目剖析 今天这道题目,考察的还是 ...

最新文章

  1. python语音翻译软件下载_python软件翻译
  2. Python深度学习之分类模型示例,MNIST数据集手写数字识别
  3. 制度缺陷还是人性不堪
  4. windows gtk+ 开发环境搭建
  5. 使用闭包的方式实现一个累加函数 addNum
  6. Linux中后台执行scp
  7. MySQL建表添加乐观锁字段_Java秒杀系统优化-Redis缓存-分布式session-RabbitMQ异步下单-页面静态化...
  8. [转载] Java获取泛型T的类型 T.class
  9. JSP Cookie 处理
  10. 中标麒麟系统u盘安装_中标麒麟u盘安装电脑系统方法
  11. MySQL-快速入门(9)视图
  12. 超声波加湿器原理与检修
  13. 神策数据杨宁:券商财富管理数字化转型客户全生命周期(视频解读)
  14. 苹果每部iPhone4S可赚3917元 开售首日收入39亿元
  15. 仿微信朋友圈,仿微信小视频 ,录制视频功能
  16. [AV1] 谈谈AV1中的 S-Frame
  17. pta习题:退休日期推算
  18. cup过高是什么意思_cpu占用率过高是什么原因
  19. 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)
  20. 物联网开发之esp8266连接onenet控制板载小灯(二)

热门文章

  1. Android: 主动抛出异常调试
  2. 摄像头之自动驾驶中的应用
  3. java中接口可不可以继承一般类,为什么?
  4. 《Spring揭秘》读书笔记 3:Spring MVC
  5. 爬虫——爬取网页数据存入表格
  6. SQL数据库——分组查询GROUP BY
  7. 【计算机毕业设计】java线上教学平台 springboot智慧教学系统
  8. 微信小程序跳转h5链接(web-view)
  9. Java编程那些事儿11——JDK的获得、安装和配置
  10. AndroidSDK开发6我用kotlin协程写了一个简单sdk