Package org.miaixz.bus.core.center.map
package org.miaixz.bus.core.center.map
Map相关封装,提供特殊Map实现
- Since:
- Java 17+
- Author:
- Kimi Liu
-
ClassDescriptionAbstractEntry<K,
V> 抽象的Map.Entry实现,来自Guava 实现了默认的AbstractEntry.equals(Object)、AbstractEntry.hashCode()、AbstractEntry.toString()方法。 默认AbstractEntry.setValue(Object)抛出异常。BiMap<K,V> 双向Map 互换键值对不检查值是否有重复,如果有则后加入的元素替换先加入的元素 值的顺序在HashMap中不确定,所以谁覆盖谁也不确定,在有序的Map中按照先后顺序覆盖,保留最后的值 它与TableMap的区别是,BiMap维护两个Map实现高效的正向和反向查找CamelCaseLinkedMap<K,V> 驼峰Key风格的LinkedHashMap 对KEY转换为驼峰,get("int_value")和get("intValue")获得的值相同,put进入的值也会被覆盖CamelCaseMap<K,V> 驼峰Key风格的Map 对KEY转换为驼峰,get("int_value")和get("intValue")获得的值相同,put进入的值也会被覆盖忽略大小写的LinkedHashMap 对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖CaseInsensitiveMap<K,V> 忽略大小写的Map 对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖忽略大小写的TreeMap对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖CustomKeyMap<K,V> 自定义键的Map,默认HashMap实现字典对象,扩充了LinkedHashMap中的方法FixedLinkedHashMap<K,V> 固定大小的LinkedHashMap实现 注意此类非线程安全,由于LinkedHashMap.get(Object)操作会修改链表的顺序结构,因此也不可以使用读写锁。ForestMap<K,V> 基于多个TreeEntry构成的、彼此平行的树结构构成的森林集合。FuncKeyMap<K,V> 自定义函数Key风格的MapFuncMap<K,V> 自定义键值函数风格的MapLinkedForestMap<K,V> ForestMap的基本实现。LinkedForestMap.EntryNodeWrapper<K,V, N extends TreeEntry<K, V>> Map.Entry包装类树节点MapBuilder<K,V> Map创建类Map的getXXX封装,提供针对通用型的value按照所需类型获取值Map拼接器,可以拼接包括Map、Entry列表等。Map代理,提供各种getXXX方法,并提供默认值支持MapWrapper<K,V> Map包装类,通过包装一个已有Map实现特定功能。例如自定义Key的规则或Value规则TableMap<K,V> 可重复键和值的Map 通过键值单独建立List方式,使键值对一一对应,实现正向和反向两种查找 无论是正向还是反向,都是遍历列表查找过程,相比标准的HashMap要慢,数据越多越慢TolerantMap<K,V> 一个可以提供默认值的MapTransMap<K,V> 自定义键和值转换的的Map 继承此类后,通过实现TransMap.customKey(Object)和TransMap.customValue(Object),按照给定规则加入到map或获取值。TreeEntry<K,V> 允许拥有一个父节点与多个子节点的Map.Entry实现, 表示一个以key作为唯一标识,并且可以挂载一个对应值的树节点, 提供一些基于该节点对其所在树结构进行访问的方法TripleTable<L,M, R> 三值表结构,可重复 用于提供三种值相互查找操作 查找方式为indexOf方式遍历查找,数据越多越慢。