zoukankan      html  css  js  c++  java
  • 集合之HashMap、Hashtable

    HashMap

    基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,
    并允许使用 null 值和 null 键。
    (除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,
    特别是它不保证该顺序恒久不变。
    特点:

    键无序,唯一,类似于Set集合
    值有序,可重复,类似于List
    底层数据结构是哈希表,保证键唯一
    允许键为null,值为null

    定义:
    HashMap<String, Student> hm = new HashMap<>();
    hm.put("208071701", new Student("208071701", "隔壁老王", 18, 80.0));
    hm.put("208071702", new Student("208071702", "隔壁老李", 18, 81.0));
    hm.put("208071703", new Student("208071703", "隔壁老周", 19, 19.0));


    // double score = hm.get("208071703").getScore();
    // System.out.println(score);

    遍历:
    for (String key : hm.keySet()) {
      Student s = hm.get(key);
      System.out.println(key + "|" + s.getName() + "|" + s.getAge() + "|" + s.getScore());
    }


    HashMap底层是哈希表结构

    键如果是系统的类,一般都是重写hashCode和equals
    如果是自己写的类作为键,需要自己重写hashCode和equals,否则键就不会去除重复元素

    LinkedHashMap
    底层数据结构是 链表和哈希表
    链表保证键有序
    哈希表保证键唯一
    LinkedHashMap<String, String> lhm = new LinkedHashMap<>()
    用法一样

    hashtable

    1是线程安全的,效率低
    2.不允许存储null值和null键

  • 相关阅读:
    linux 下怎么看postgresql安装到哪个目录了?
    sqlserver 存储image 语句
    thinkphp5.1 配置使用
    百度车牌识别demo
    elastticsearch 安装
    InDB开发
    John爆破密码
    域传送漏洞
    新远程下载方式(IME)
    SSH端口转发
  • 原文地址:https://www.cnblogs.com/lrxvx/p/9407740.html
Copyright © 2011-2022 走看看