当前位置: 首页 > news >正文

Java重修笔记 第四十七天 HashTable 类、Properties 类、如何选择集合

  • HashTable 类

1. 存放的是键值对 K-V

2. HashTable 的键和值都不能为 null ,否则会报 NullPointerException 异常

3. HashTable 是线程安全的

4. 用法和 HashMap 一样

5. HashTable 底层有 Hashtable$Entry[]类型的数组,第一次添加初始化大小为 11

6. HashTable 每次扩容按照两倍 + 1 的方式扩容

  • HashTable 和 HashMap 比较

1. HashTable 线程安全,但效率较低,不可以存储 null 的键和值

2. HashMap 线程不安全,但效率高,可以存储 null 的键和值

  • Properties 类

1. Properties 类继承自 Hashtable 类并且实现了 Map 接口,也是使用一种键值对的形式来保存数据

2. 因为是 HashTable 的子类,所以继承 HashTable 的所有特性,线程不安全,但效率高,可以存储 null 的键和值

3. Properties 更多用于从 .properties 配置文件中,加载数据到 Properties 类对象,并进行读取和修改

4. 也可以当做普通的 Map 对象,对键值对进行增删改查

  • 开发中如何选择使用哪一种集合实现类

1. 存储一组对象:Collection

        允许重复:List 接口

                增删多:LinkedList 类(底层是双向链表)
                改查多:ArrayList 类(底层是 Object 类型的可变数组)

        不允许重复:Set 接口

                无序:HashSet 类(底层是HashMap,数组 + 链表 + 红黑树的哈希表)
                排序:TreeSet 类
                插入和取出顺序一致:LinkedHashSet (底层是LinkedHashMap,数组 + 双向链表)

2. 存储一组键值对:Map

        键无序:HashMap 类(数组 + 链表 + 红黑树的哈希表)
        键排序:TreeMap 类
        键插入和取出顺序一致:LinkedHashMap 类
        读取文件专用:Properties 类


http://www.mrgr.cn/news/20785.html

相关文章:

  • vscode开发佳明表盘-monkeyc语法篇(入门二)
  • 服务器禁用远程(22)
  • 内存序相关知识点
  • java发送邮箱如何实现?如何配置Java发信?
  • 两个简单示例,轻松干翻CPU
  • prompt实用技巧-竞对分析-飞书发布会上多维表和低代码平台原型分析
  • 云计算之大数据(下)
  • 菜鸟入门Docker
  • kubernetes Pod failed to create fsnotify watcher: too many open files
  • IPv4地址学习
  • 各网安上市公司的现金还能撑多久?
  • 霍尼韦尔、书客、米家护眼大路灯怎么样?终极测评对比和护眼灯王者机型
  • 项目实战系列: 家居购项目 第一部分
  • 大家都谈的Scaling Law是什么?
  • 两个长整数字符串求和(不允许使用ES6+)
  • SAP物料分类帐后台配置
  • python 下载excel 添加水印
  • dropdown源码分析 -- ant-design-vue系列
  • LLM 进化分岔口:多模态、成本、代码推理
  • RockyLinux8.9上yum安装redis6