package com.test.utils;
import com.test.dto.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.TreeSet;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.commons.collections.MapUtils;
/**
-
yanhua0
*/
public class StreamListUtils {/**
- list转list
- @param list 集合对象
- @param function 转化的具体字段
- @param
- @param
- @return
*/
public static <T,O> List toList(List list, Function<O,T> function){
return list.stream().map(function).collect(Collectors.toList());
}
/**
- list分组
- @param list 集合对象
- @param function 分组实现
- @param
- @param
- @return
*/
public static <T,O> Map<T,List> group(List list, Function<O,T> function){
return list.stream().collect(Collectors.groupingBy(function));
}
/**
- list转map
- @param list
- @param function1
- @param function2
- @param
- @param
- @param
- @return
*/
public static <T,O,K> Map<T,K> toMap(List list, Function<O,T> function1,Function<O,K> function2){
return list.stream().collect(Collectors.toMap(function1,function2,(o,n)->n));
}
/**
- @param list 集合对象
- @return
*/
public static List distinct(List list, Function<T, String> function) {
return list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
new TreeSet<>(Comparator.comparing(function))), ArrayList::new));
}
public static void main(String[] args) {
List testList=new ArrayList<>();
List s=toList(testList,Test::getStr);
toList(s)
}
}