This commit is contained in:
Looly 2021-06-16 02:59:50 +08:00
parent ad40ca5670
commit 40dcdf5e43
3 changed files with 15 additions and 3 deletions

View File

@ -1171,11 +1171,14 @@ public class CollUtil {
*
* @param <T> 集合元素类型
* @param collection 集合
* @param filter 过滤器
* @param filter 过滤器{@link null}返回原集合
* @return 过滤后的数组
* @since 3.1.0
*/
public static <T> Collection<T> filterNew(Collection<T> collection, Filter<T> filter) {
if(null == collection || null == filter){
return collection;
}
return edit(collection, t -> filter.accept(t) ? t : null);
}

View File

@ -660,11 +660,14 @@ public class MapUtil {
* @param <K> Key类型
* @param <V> Value类型
* @param map Map
* @param filter 编辑器接口
* @param filter 编辑器接口{@link null}返回原Map
* @return 过滤后的Map
* @since 3.1.0
*/
public static <K, V> Map<K, V> filter(Map<K, V> map, Filter<Entry<K, V>> filter) {
if(null == map || null == filter){
return map;
}
return edit(map, t -> filter.accept(t) ? t : null);
}
@ -674,12 +677,15 @@ public class MapUtil {
* @param <K> Key类型
* @param <V> Value类型
* @param map 原始Map
* @param keys 键列表
* @param keys 键列表{@link null}返回原Map
* @return Map 结果结果的Map类型与原Map保持一致
* @since 4.0.10
*/
@SuppressWarnings("unchecked")
public static <K, V> Map<K, V> filter(Map<K, V> map, K... keys) {
if(null == map || null == keys){
return map;
}
Map<K, V> map2 = ObjectUtil.clone(map);
if (isEmpty(map2)) {
return map2;

View File

@ -621,6 +621,9 @@ public class ArrayUtil extends PrimitiveArrayUtil {
* @since 3.2.1
*/
public static <T> T[] filter(T[] array, Filter<T> filter) {
if(null == array || null == filter){
return array;
}
return edit(array, t -> filter.accept(t) ? t : null);
}