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键

集合之HashMap、Hashtable的更多相关文章

  1. 基于散列的集合 HashSet\HashMap\HashTable

    HashSet\HashMap\HashTable 1 基于散列的集合 2 元素会根据hashcode散列,因此,集合中元素的顺序不一定与插入的顺序一致. 3 根据equals方法与hashCode方 ...

  2. [Java集合] 彻底搞懂HashMap,HashTable,ConcurrentHashMap之关联.

    注: 今天看到的一篇讲hashMap,hashTable,concurrentHashMap很透彻的一篇文章, 感谢原作者的分享. 原文地址: http://blog.csdn.net/zhanger ...

  3. Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

    概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...

  4. Map集合、HashMap集合、LinkedHashMap集合、Hashtable集合、Collections工具类和模拟斗地主洗牌和发牌

    1.Map集合概述和特点 * A:Map接口概述  * 查看API可以知道:          * 将键映射到值的对象          * 一个映射不能包含重复的键          * 每个键最多 ...

  5. Set集合[HashSet,TreeSet,LinkedHashSet],Map集合[HashMap,HashTable,TreeMap]

    ------------ Set ------------------- 有序: 根据添加元素顺序判定, 如果输出的结果和添加元素顺序是一样 无序: 根据添加元素顺序判定,如果输出的结果和添加元素的顺 ...

  6. Java基础系列 - JAVA集合ArrayList,Vector,HashMap,HashTable等使用

    package com.test4; import java.util.*; /** * JAVA集合ArrayList,Vector,HashMap,HashTable等使用 */ public c ...

  7. Collections+Iterator 接口 | Map+HashMap+HashTable+TreeMap |

    Collections+Iterator 接口 1. Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询 ...

  8. HashMap,Hashtable,TreeMapMap

    package com.wzy.list; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterato ...

  9. Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  10. 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD

    目录 第9讲 | 对比Hashtable.HashMap.TreeMap有什么不同? 典型回答 考点分析 知识扩展 Map 整体结构 有序 Map HashMap 源码分析 容量.负载因子和树化 精选 ...

随机推荐

  1. Linux文件系统的实现 ZZ

    作者:Vamei 出处:http://www.cnblogs.com/vamei Linux文件管理从用户的层面介绍了Linux管理文件的方式.Linux有一个树状结构来组织文件.树的顶端为根目录(/ ...

  2. leetcode-Maximum Product Subarray-ZZ

    http://blog.csdn.net/v_july_v/article/details/8701148 假设数组为a[],直接利用动归来求解,考虑到可能存在负数的情况,我们用Max来表示以a结尾的 ...

  3. redis3.2.8安装与简介

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的 ...

  4. 记账本app(一)

    计划开发一款小程序应用,主要来记录自己的财务账目. 通过使用SpringBoot开发后端应用,提供接口,对应前端使用微信小程序来实现. 功能模块(用户信息,账本.账目列表,新增一笔账,修改一笔账,删除 ...

  5. Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)

    在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...

  6. Struts2学习-Ioc学习

    网址:http://blog.csdn.net/qq_22654611/article/details/52606960可以在这个网址学学. 1.新建空项目,然后建立Java EE,在把Java EE ...

  7. React Native for Android on Windows 配置开发安装总结

    配置开发安装总结(由于当前react-native更新较快,目前是针对2015年11月底时的reacti-native android for windows版本,有些内容可能过时) 官方的安装指导在 ...

  8. Python取出SQL表单中的字段名

    def ReturnInfo(self, avalue, akey): cursor = connection.cursor() Sql = "select * from %s where ...

  9. maven工程src/main/java目录无法创建问题

    在项目上右键选择properties,然后点击Javabuild path,在Librarys下,编辑JRE System Library,选择 workspace default jre 即可

  10. Join Resig's “Simple JavaScript Inheritance ”

    ======================Enein翻译=========================           John Resig 写了一篇关于 JavaScript 里类似其它语 ...