All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hutool.core.map.multi.CollectionValueMap Maven / Gradle / Ivy

Go to download

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

There is a newer version: 5.8.34
Show newest version
package cn.hutool.core.map.multi;

import cn.hutool.core.lang.func.Func0;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * 值作为集合的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示
* 此类可以通过传入函数自定义集合类型的创建规则 * * @param 键类型 * @param 值类型 * @author looly * @since 4.3.3 */ public class CollectionValueMap extends AbsCollValueMap> { private static final long serialVersionUID = 9012989578038102983L; private final Func0> collectionCreateFunc; // ------------------------------------------------------------------------- Constructor start /** * 构造 */ public CollectionValueMap() { this(DEFAULT_INITIAL_CAPACITY); } /** * 构造 * * @param initialCapacity 初始大小 */ public CollectionValueMap(int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR); } /** * 构造 * * @param m Map */ public CollectionValueMap(Map> m) { this(DEFAULT_LOAD_FACTOR, m); } /** * 构造 * * @param loadFactor 加载因子 * @param m Map */ public CollectionValueMap(float loadFactor, Map> m) { this(loadFactor, m, ArrayList::new); } /** * 构造 * * @param initialCapacity 初始大小 * @param loadFactor 加载因子 */ public CollectionValueMap(int initialCapacity, float loadFactor) { this(initialCapacity, loadFactor, ArrayList::new); } /** * 构造 * * @param loadFactor 加载因子 * @param m Map * @param collectionCreateFunc Map中值的集合创建函数 * @since 5.7.4 */ public CollectionValueMap(float loadFactor, Map> m, Func0> collectionCreateFunc) { this(m.size(), loadFactor, collectionCreateFunc); this.putAll(m); } /** * 构造 * * @param initialCapacity 初始大小 * @param loadFactor 加载因子 * @param collectionCreateFunc Map中值的集合创建函数 * @since 5.7.4 */ public CollectionValueMap(int initialCapacity, float loadFactor, Func0> collectionCreateFunc) { super(new HashMap<>(initialCapacity, loadFactor)); this.collectionCreateFunc = collectionCreateFunc; } // ------------------------------------------------------------------------- Constructor end @Override protected Collection createCollection() { return collectionCreateFunc.callWithRuntimeException(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy