系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、Map接口的实现类们:
  • 二、HashMap和Hashtable 哈希表
  • 三、HashMap和LinkedHashMap
  • 四、HashMap和TreeMap
  • 五、Properties
    • 六、所有的map的key不能重复,如何实现不重复?
    • 七、、完整代码

前言

这一节讲它的实现类

一、Map接口的实现类们:

1、HashMap
2、Hashtable
3、TreeMap
4、LinkedHashMap
5、Properties

二、HashMap和Hashtable 哈希表

Hashtable:旧版。线程安全的。它的key和value不能为null。
HashMap:相对Hashtable它来说新一点。线程不安全。它允许key和value为null值。
并且他们排序也稍有不同

关联记忆:(旧的写前面)
StringBuffer和StringBuilder
Vector和ArrayList
Hashtable和HashMap

三、HashMap和LinkedHashMap

LinkedHashMap是HashMap的子类,比HashMap多维护了映射关系的添加顺序。
HashMap:无序的
LinkedHashMap:可以记录添加顺序。

LinkedHashMap比HashMap要做的事多,效率低。所以建议我们只在需要维护顺序时再使用它。

四、HashMap和TreeMap

HashMap:无序的。
TreeMap:按照key排大小顺序。

五、Properties

Properties是Hashtable的子类,不允许key和value是null,并且它的key和value的类型都是String。
通常用于存储配置属性。
而且为了可读性更好,还增加了两个方法:
setProperty(key,value)
String getProperty(key)






注意上面红框标错了,是System.getProperties()

六、所有的map的key不能重复,如何实现不重复?

HashMap、Hashtable、LinkedHashMap、Properties:依据key的hashCode和equals方法
TreeMap:依据key的大小,认为大小相等的两个key就是重复的
如果key重复了,那么后面的value会替换原来的value。
TreeMap要让key排大小,要么key类型本身实现了java.lang.Comparable接口,要么在创建TreeMap时,指定一个java.util.Comparator接口的实现类对象。

七、、完整代码

package com.atguigu.test06;import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
import java.util.TreeMap;import org.junit.Test;@SuppressWarnings("all")
public class TestMapImpl {//key不可重复@Testpublic void test7(){Map map = new HashMap();map.put("杨洪强", "翠花");//被覆盖了map.put("崔志恒", "如花");map.put("甄玉禄", "凤姐");map.put("杨洪强", "冰冰");Set entrySet = map.entrySet();for (Object entry : entrySet) {System.out.println(entry);}}@Testpublic void test6() throws IOException{Properties pro = System.getProperties();//获取系统属性配置Set entrySet = pro.entrySet();for (Object entry : entrySet) {System.out.println(entry);}}@Testpublic void test5() throws IOException{Properties pro = new Properties();pro.load(TestMapImpl.class.getClassLoader().getResourceAsStream("jdbc.properties"));String user = pro.getProperty("user");String password = pro.getProperty("password");System.out.println(user);System.out.println(password);}@Testpublic void test4(){Properties pro = new Properties();pro.setProperty("user", "chailinyan");pro.setProperty("pwd", "123456");String user = pro.getProperty("user");String password = pro.getProperty("pwd");System.out.println(user);System.out.println(password);}@Testpublic void test3(){Map map = new TreeMap();//按照key排大小顺序。map.put("yanghongqiang", "翠花");map.put("cuizhiheng", "如花");map.put("zhenyulu", "凤姐");map.put("suhaibo", "翠花");Set entrySet = map.entrySet();for (Object entry : entrySet) {System.out.println(entry);}}@Testpublic void test2(){Map map = new LinkedHashMap();//按照添加顺序map.put("杨洪强", "翠花");map.put("崔志恒", "如花");map.put("甄玉禄", "凤姐");map.put("苏海波", "翠花");Set entrySet = map.entrySet();for (Object entry : entrySet) {System.out.println(entry);}}@Testpublic void test1(){Map map = new HashMap();//完全无序map.put("杨洪强", "翠花");map.put("崔志恒", "如花");map.put("甄玉禄", "凤姐");map.put("苏海波", "翠花");Set entrySet = map.entrySet();for (Object entry : entrySet) {System.out.println(entry);}}
}

00020.07 集合Map的接口和它的实现类们(包含HashMap、Hashtable、TreeMap、LinkedHashMapProperties以及实现Comparable接口模板)相关推荐

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

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

  2. java 类 比较大小_java 类比较大小(实现Comparable接口)

    import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 两个类要想比较大小, * ...

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

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

  4. java 匿名类实现6_java匿名内部类,以及实现Comparato和Comparable接口实现对对象的排序...

    匿名内部类的声明使用方式, Comparabletor接口实现,需要先导入包,再实现Comparator的对象比较的方法,并且需要新声明比较器类去实现此接口,再用比较器类新建对象调用compare(O ...

  5. java map collection_java 集合----Map、Collection

    接口:红色:实现类:黑色字体 一.Collection集合 Collection |_____Set(HashSet) |      |_____SortedSet(TreeSet) |_____Li ...

  6. (7)Java数据结构--集合map,set,list详解

    MAP,SET,LIST,等JAVA中集合解析(了解) - clam_clam的专栏 - CSDN博---有颜色, http://blog.csdn.net/clam_clam/article/det ...

  7. Java:Effective java学习笔记之 考虑实现Comparable 接口

    Java 考虑实现Comparable 接口 考虑实现Comparable 接口 1.Comparable接口 2.为什么要考虑实现Comparable接口 3.compareTo 方法的通用约定 4 ...

  8. java comparable接口作用_Java 中 Comparable 接口的意义和用法

    一, 为何需要实现Comparable接口 我们知道Collections类中包含很多对实现Collection接口的容器各种操作的静态方法. 当然, 其中最长用的莫过于排序了(Collections ...

  9. Java 中 Comparable 接口的意义和用法.

    在之前的博文中已经介绍了Java中Collection 接口和 Collections类. http://blog.csdn.net/nvd11/article/details/21516075 一, ...

最新文章

  1. python用动态规划求最短路径_动态规划之最短路径和
  2. 基于python的天气预报系统,基于python编写的天气抓取程序
  3. 2006第三季度:10大最糟科技事件
  4. 趣学python3(1)-f前缀格式化字符串文本
  5. 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第二章——自编解析与答案
  6. java将030A转换为方块_JAVA试题
  7. 包装类型与包装类别_包装的重要性
  8. leetcode 77. 组合 思考分析
  9. 获取当前窗口是否可见 document.visibilityState
  10. Java笔记-异常机制中try(...)中括号的用法
  11. maven error: element dependency can not have character children
  12. Android基础View回顾
  13. SAP License:BWBCS学习笔记20210304
  14. 区块链环境搭建、环境架构介绍、环境如何用、部署 Chaincode、智能合约的调用
  15. AD13转oRCAD原理图的操作方式
  16. signature=29c90d1a8d382ff261d00a931708390a,发烧音响功放(顶级Hi-End音响发烧器材介绍)...
  17. Python学习_053.双分支选择结构_三元运算符的使用详解
  18. 杭州电子科技大学ACM1020 JAVA
  19. 我喜欢两个男人。。。
  20. 元宇宙的第一步,应该在汽车里迈出去?

热门文章

  1. 跨境电商必备浏览器:为跨境电商账号安全保驾护航
  2. Linux-文件管理命令
  3. CSS样式让文字水平居中和垂直居中的方法
  4. pyecharts桑基图制作遇到的问题
  5. python3 (3)---- 去掉字符串中的标点符号
  6. 2022美亚杯个人wp
  7. 根据当前经纬度,计算东西南北方向距离1000米的经纬度,或者某个方向角1000米的经纬度
  8. 早春营|RISC-V处理器嵌入式开发
  9. iPhone SE Plus:处理器依旧采用A13芯片?
  10. C#——窗体程序利用委托进行两个数的加减乘除计算的多种方法。(委托的多种使用方法)