add methods

This commit is contained in:
Looly 2020-05-19 17:31:15 +08:00
parent 0dde5ce4bc
commit 008855fafb
2 changed files with 43 additions and 2 deletions

View File

@ -12,6 +12,7 @@
* 【core 】 Snowflake循环等待下一个时间时避免长时间循环加入对时钟倒退的判断pr#874@Github
* 【extra 】 新增 QRCode base64 编码形式返回pr#878@Github
* 【core 】 ImgUtil增加toBase64DateUriURLUtil增加getDataUri方法
* 【core 】 IterUtil添加List转Map的工具方法pr#123@Gitee
### Bug修复

View File

@ -467,6 +467,7 @@ public class IterUtil {
* @param <K> 键类型
* @param <V> 值类型
* @return HashMap
* @since 5.3.6
*/
public static <K, V> Map<K, List<V>> toListMap(Iterable<V> iterable, Function<V, K> keyMapper) {
return toListMap(iterable, keyMapper, v -> v);
@ -482,10 +483,29 @@ public class IterUtil {
* @param <K> 键类型
* @param <V> 值类型
* @return HashMap
* @since 5.3.6
*/
public static <T, K, V> Map<K, List<V>> toListMap(Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) {
final HashMap<K, List<V>> resultMap = MapUtil.newHashMap();
return toListMap(MapUtil.newHashMap(), iterable, keyMapper, valueMapper);
}
/**
* 将列表转成值为List的HashMap
*
* @param resultMap 结果Map可自定义结果Map类型
* @param iterable 值列表
* @param keyMapper Map的键映射
* @param valueMapper Map中List的值映射
* @param <T> 列表值类型
* @param <K> 键类型
* @param <V> 值类型
* @return HashMap
* @since 5.3.6
*/
public static <T, K, V> Map<K, List<V>> toListMap(Map<K, List<V>> resultMap, Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) {
if (null == resultMap) {
resultMap = MapUtil.newHashMap();
}
if (ObjectUtil.isNull(iterable)) {
return resultMap;
}
@ -505,6 +525,7 @@ public class IterUtil {
* @param <K> 键类型
* @param <V> 值类型
* @return HashMap
* @since 5.3.6
*/
public static <K, V> Map<K, V> toMap(Iterable<V> iterable, Function<V, K> keyMapper) {
return toMap(iterable, keyMapper, v -> v);
@ -520,10 +541,29 @@ public class IterUtil {
* @param <K> 键类型
* @param <V> 值类型
* @return HashMap
* @since 5.3.6
*/
public static <T, K, V> Map<K, V> toMap(Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) {
final HashMap<K, V> resultMap = MapUtil.newHashMap();
return toMap(MapUtil.newHashMap(), iterable, keyMapper, valueMapper);
}
/**
* 将列表转成Map
*
* @param resultMap 结果Map通过传入map对象决定结果的Map类型
* @param iterable 值列表
* @param keyMapper Map的键映射
* @param valueMapper Map的值映射
* @param <T> 列表值类型
* @param <K> 键类型
* @param <V> 值类型
* @return HashMap
* @since 5.3.6
*/
public static <T, K, V> Map<K, V> toMap(Map<K, V> resultMap, Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) {
if (null == resultMap) {
resultMap = MapUtil.newHashMap();
}
if (ObjectUtil.isNull(iterable)) {
return resultMap;
}