【Java】---Map体系集合:HashMap、LinkerHashMap、TreeMap、Properties

本文详细介绍了Java中的四个Map集合类:HashMap基于哈希表,LinkedHashMap为双向链表结构,TreeMap基于红黑树,以及Properties类及其特有的setProperty,stringPropertyNames和getProperty方法。
摘要由CSDN通过智能技术生成

【Java】—Map体系集合:HashMap、LinkerHashMap、TreeMap、Properties



一、HashMap

1.1 概念:

HashMap,是Map接口的实现类之一,存储结构为哈希表
特点:

  1. 线程不安全。
  2. 根据键的hash值计算位置,如果此位置没有元素,直接加入;若有元素,判断键是否相等(equals),若不相等,与其顺延,形成链表结构;若相等,拒绝其加入。
  3. 使用无参构造方法创建HashMap时,加载因子为0.75。
  4. 当添加第一个元素后,容量调整为16。
  5. 当元素个数大于12时,会进行扩容,扩容后大小为原来的两倍。
  6. JDK1.8以前,链表是头插入,JDK1.8以后是尾插入。
  7. JDK1.8:当红黑树节点小于等于6时,调整成链表。

如果想要了解什么是哈希表,请移步:【Java】—Collection体系集合:Set、HashSet、TreeSet详解

由于HashMap是具体类,可直接创建对象:

HashMap map = new HashMap();

HashSet内部调用的是HashMap。


二、LinkedHashMap

2.1 概念

LinkedHashMap,是Map接口的实现类之一,存储结构为双向链表


三、TreeMap

3.1 概念

TreeMap,是Map接口的实现类之一,存储结构为红黑树

如果想了解TreeSet以及红黑树是什么,请移步:【Java】—Collection体系集合:Set、HashSet、TreeSet详解

由于TreeMap是具体类,可直接创建对象:

TreeMap map = new TreeMap();

TreeMap对象需要比较规则,如果想要了解规则,请移步:【Java】—Collection体系集合:Set、HashSet、TreeSet详解

TreeSet内部调用的就是TreeMap。


四、Properties

4.1 概念

Properties,是Map接口的实现类:Hashtable的继承者,
特点:

  1. 键和值都是String类型数据
  2. 和IO流有关系
    由于Properties是具体类,所以可以直接创建对象:
Properties map = new Properties();

4.2 独有方法

4.2.1 setProperty(String 键,String 值);

作用:在集合中添加键值对,如果键相同则覆盖。

代码演示:

Properties map = new Properties();
map.setProperty("1","张三");
map.setProperty("2","李四");
map.setProperty("3","王五");
System.out.println(map);
map.setProperty("2","赵六");//键相同,覆盖原先元素
System.out.println(map);

运行结果

{3=王五, 2=李四, 1=张三}
{3=王五, 2=赵六, 1=张三}

4.2.2 stringPropertyNames()

作用:返回键的Set集合
返回值类型:Set

代码演示:

Properties map = new Properties();
map.setProperty("1","苹果");
map.setProperty("2","香蕉");
map.setProperty("3","哈密瓜");
System.out.println(map.stringPropertyNames());//返回键的Set集合
Set set = map.stringPropertyNames();//也可以通过Set对象接收
System.out.println(set);

运行结果

[3, 2, 1]
[3, 2, 1]

4.2.3 getProperty(String 键)

作用:通过键,返回集合中键所对应的值,如果没有则返回null
返回值类型:String

代码演示:

Properties map = new Properties();
map.setProperty("1","手机");
map.setProperty("2","电脑");
map.setProperty("3","平板");
System.out.println(map.getProperty("3"));
System.out.println(map.getProperty("4"));

运行结果:

平板
null


总结

内容不是很多,主要讲解了Properties及其方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值