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键

最新文章

  1. Jexus Web Server 完全傻瓜化图文配置教程(基于Ubuntu 12.04.3 64位)[内含Hyper-v 2012虚拟机镜像下载地址]
  2. linux-crontab定时任务
  3. sdn
  4. Navicat for mysql 远程连接 mySql数据库10061、1045错误
  5. Android中Activity的生命周期
  6. 对GitHub的认识
  7. Dynamics AX 中重点数据源方法
  8. object-c(oc)内存管理机制详解
  9. Build Firefox 编译Firefox
  10. C/C++基础概念
  11. mybatis小结
  12. day05(数字类型,字符串类型,列表类型)
  13. Vue插槽:(2.6.0以后版本弃用slot和slot-scope,改用v-slot)
  14. Docker介绍及常用操作演示(一)--技术流ken
  15. 如何把光盘制作成ISO镜像文件
  16. JAVA去重
  17. 恶性bug解决,Encoding 1252 data could not be found. Make sure you have correct international codeset assembly installed and enabled
  18. 老生常谈,HashMap的死循环(转)
  19. 打开所有https网页都提示证书错误
  20. javascript总结11:JavaScript的自增自减

热门文章

  1. 【Leetcode】【Medium】Triangle
  2. 【Leetcode】【Medium】Gas Station
  3. YII2.0安装教程,数据库配置前后台 [ 2.0 版本 ]
  4. tree结构统一修改属性名(递归)
  5. SharpZipLib压缩解压
  6. 笔记,记事软件(RedbookNote, lifeopraph)
  7. sublime text html5开发学习 插件篇记录
  8. sql语句的group by 与 inner join
  9. hdu-1395 2^x mod n = 1---求阶(欧拉函数)
  10. css 17课--