This commit is contained in:
Looly 2020-10-27 11:11:16 +08:00
parent c138eb5028
commit b3d2f7a94f
3 changed files with 37 additions and 6 deletions

View File

@ -3,11 +3,13 @@
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------
# 5.4.7 (2020-10-23) # 5.4.7 (2020-10-27)
### 新特性 ### 新特性
* 【core 】 增加OptionalBeanpr#1182@Github * 【core 】 增加OptionalBeanpr#1182@Github
* 【core 】 Ganzhi增加方法issue#1186@Github * 【core 】 Ganzhi增加方法issue#1186@Github
* 【core 】 CollUtil增加forEach重载issue#I22NA4@Gitee
* 【core 】 CollUtil.map忽略空值改规则为原数组中的元素和处理后的元素都会忽略空值issue#I22N08@Gitee
### Bug修复 ### Bug修复
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------

View File

@ -1371,7 +1371,7 @@ public class CollUtil {
* @param <R> 返回集合元素类型 * @param <R> 返回集合元素类型
* @param collection 原集合 * @param collection 原集合
* @param func 编辑函数 * @param func 编辑函数
* @param ignoreNull 是否忽略空值 * @param ignoreNull 是否忽略空值这里的空值包括函数处理前和处理后的null值
* @return 抽取后的新列表 * @return 抽取后的新列表
* @since 5.3.5 * @since 5.3.5
*/ */
@ -1382,8 +1382,11 @@ public class CollUtil {
} }
R value; R value;
for (T bean : collection) { for (T t : collection) {
value = func.apply(bean); if(null == t && ignoreNull){
continue;
}
value = func.apply(t);
if (null == value && ignoreNull) { if (null == value && ignoreNull) {
continue; continue;
} }
@ -2545,6 +2548,18 @@ public class CollUtil {
// ------------------------------------------------------------------------------------------------- forEach // ------------------------------------------------------------------------------------------------- forEach
/**
* 循环遍历 {@link Iterable}使用{@link Consumer} 接受遍历的每条数据并针对每条数据做处理
*
* @param <T> 集合元素类型
* @param iterable {@link Iterable}
* @param consumer {@link Consumer} 遍历的每条数据处理器
* @since 5.4.7
*/
public static <T> void forEach(Iterable<T> iterable, Consumer<T> consumer) {
forEach(iterable.iterator(), consumer);
}
/** /**
* 循环遍历 {@link Iterator}使用{@link Consumer} 接受遍历的每条数据并针对每条数据做处理 * 循环遍历 {@link Iterator}使用{@link Consumer} 接受遍历的每条数据并针对每条数据做处理
* *
@ -2879,7 +2894,8 @@ public class CollUtil {
// ---------------------------------------------------------------------------------------------- Interface start // ---------------------------------------------------------------------------------------------- Interface start
/** /**
* 针对一个参数做相应的操作 * 针对一个参数做相应的操作<br>
* 此函数接口与JDK8中Consumer不同是多提供了index参数用于标记遍历对象是第几个
* *
* @param <T> 处理参数类型 * @param <T> 处理参数类型
* @author Looly * @author Looly

View File

@ -10,7 +10,20 @@ import lombok.Data;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import java.util.*; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.SortedSet;
/** /**
* 集合工具类单元测试 * 集合工具类单元测试