From 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期五, 01 十一月 2024 15:11:19 +0800 Subject: [PATCH] Revert "集成获取mdm分发通用数据格式接口集成" --- Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/common/MultiSetMap.java | 132 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 132 insertions(+), 0 deletions(-) diff --git a/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/common/MultiSetMap.java b/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/common/MultiSetMap.java new file mode 100644 index 0000000..6625c6b --- /dev/null +++ b/Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/common/MultiSetMap.java @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2018-2028, DreamLu All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: DreamLu 鍗㈡槬姊� (596392912@qq.com) + */ +package org.springblade.core.auto.common; + +import java.util.*; + +/** + * MultiSetMap + * + * @author L.cm + */ +public class MultiSetMap<K, V> { + private transient final Map<K, Set<V>> map; + + public MultiSetMap() { + map = new HashMap<>(); + } + + private Set<V> createSet() { + return new HashSet<>(); + } + + /** + * put to MultiSetMap + * + * @param key 閿� + * @param value 鍊� + * @return boolean + */ + public boolean put(K key, V value) { + Set<V> set = map.get(key); + if (set == null) { + set = createSet(); + if (set.add(value)) { + map.put(key, set); + return true; + } else { + throw new AssertionError("New set violated the set spec"); + } + } else if (set.add(value)) { + return true; + } else { + return false; + } + } + + /** + * 鏄惁鍖呭惈鏌愪釜key + * + * @param key key + * @return 缁撴灉 + */ + public boolean containsKey(K key) { + return map.containsKey(key); + } + + /** + * 鏄惁鍖呭惈 value 涓殑鏌愪釜鍊� + * + * @param value value + * @return 鏄惁鍖呭惈 + */ + public boolean containsVal(V value) { + Collection<Set<V>> values = map.values(); + return values.stream().anyMatch(vs -> vs.contains(value)); + } + + /** + * key 闆嗗悎 + * + * @return keys + */ + public Set<K> keySet() { + return map.keySet(); + } + + /** + * put list to MultiSetMap + * + * @param key 閿� + * @param set 鍊煎垪琛� + * @return boolean + */ + public boolean putAll(K key, Set<V> set) { + if (set == null) { + return false; + } else { + map.put(key, set); + return true; + } + } + + /** + * get List by key + * + * @param key 閿� + * @return List + */ + public Set<V> get(K key) { + return map.get(key); + } + + /** + * clear MultiSetMap + */ + public void clear() { + map.clear(); + } + + /** + * isEmpty + * + * @return isEmpty + */ + public boolean isEmpty() { + return map.isEmpty(); + } +} -- Gitblit v1.9.3