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

commons.box.util.Maps Maven / Gradle / Ivy

The newest version!
package commons.box.util;

import com.google.common.collect.ImmutableMap;

import javax.annotation.Nonnull;
import java.util.Collections;
import java.util.Map;
import java.util.function.Consumer;

/**
 * 与Map相关的工具类
 * 

创建作者:xingxiuyi

*

版权所属:xingxiuyi

*/ public final class Maps { private static final Map EMPTY_MAP = ImmutableMap.of(); private Maps() { } @SuppressWarnings("unchecked") @Nonnull public static Map immmap() { return (Map) EMPTY_MAP; } /** * 不可变更实例 * * @param map * @param * @param * @return */ @SuppressWarnings("unchecked") @Nonnull public static Map immmap(Map map) { if (map == null) return (Map) EMPTY_MAP; return Collections.unmodifiableMap(map); } /** * 空值安全的操作 *

*

* 如果是空值,返回默认空实例 *

* 如果非空则直接返回原始值 *

* 本方法用于避免频繁的非空判断 * * @param map * @param * @param * @return */ @Nonnull public static Map safe(Map map) { if (map == null) return immmap(); return map; } /** * 在 map 初始化时参数 初始大小 的最佳值 *

* expectedSize 是目标map期望的元素个数 * * @param expectedSize * @return */ public static int capbest(int expectedSize) { return (int) ((float) expectedSize / 0.75F + 1.0F); } /** * 判断是否为空. */ public static boolean isEmpty(Map map) { return (map == null) || map.isEmpty(); } /** * 判断是否不为空. */ public static boolean isNotEmpty(Map map) { return (map != null) && !(map.isEmpty()); } /** * 把vmap的值合并到container中 * * @param container * @param vmap * @param * @param */ public static void combin(Map> container, Map> vmap) { if (container == null || vmap == null || vmap.isEmpty()) return; for (Map.Entry> vm : vmap.entrySet()) { final K vmk = vm.getKey(); final Map vmv = vm.getValue(); if (vmk == null || vmv == null) continue; Map cmv = container.get(vmk); if (cmv == null) { container.put(vmk, vmv); } else { cmv.putAll(vmv); } } } /** * 当找到 map 的 value 后执行操作 * * @param map * @param key * @param onValue * @param * @param * @return 找到目标并执行了操作 返回 true 否则返回 false */ public static boolean get(Map map, K key, Consumer onValue) { if (map == null || key == null || onValue == null) return false; if (map.containsKey(key)) { V value = map.get(key); onValue.accept(value); return true; } return false; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy