HashTable、Properties、TreeSet及如何选择集合实现类详解
HashTable、Properties、TreeSet详解及如何选择集合实现类
1. HashTable说明
- 存放的是键值对,即 k - v
- hashTable的键和值都不能为null,否则会抛出NullPointerException
- hashTable使用方法基本上和HashMap一致
- hashTable是线程安全的(synchronized),hashMap是线程不安全的
2. Properties类说明
1. 基本介绍
- Properties类继承自HashTable类并且实现了Map 接口,也是一种键值对的形式来保存数据
- 它的只用特点和HashTable类似
- Properties还可用于从 xx.properties文件中,加载数据到Properties类对象,并进行读取和修改
- 说明:xx.properties文件通常作为配置文件
3. 如何选择集合实现类
- 选择什么集合实现类,主要取决于业务操作特点
-
先判断存储的类型(一组对象【单列】或一组键值对【双列】)
-
一组对象【单列】:Collection接口
-
允许重复:List
- 增删多:LinkedList(底层维护了一个双向链表)
- 改查多:ArrayList(底层维护了Object类型的可变数组)
-
不允许重复: Set
- 无序:HashSet (底层是HashMap,维护了一个哈希表即数组+链表+红黑树)
- 排序:TreeSet
- 插入和取出顺序一致:LinkedHashSet,数组+双向链表
-
-
一组键值对【双列】:Map
- 键无序:HashMap
- 键排序:TreeMap
- 键插入和取出顺序一致:LinkedHashMap
- 读取文件:Properties
4. TreeSet说明
- 当我们使用无参构造器创建TreeSet时,任然是无序的
- 希望在添加元素时,按照字符串大小进行排列
- 则使用TreeSet提供的一个构造器,可以传入一个比较器(匿名内部类),并指定排序规则
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)