工具类核心源码在操作集合对象时很多场景需要遍历集合,为了方便包装了一下,供参考和记录
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public final class BeanIndexUtil {
public static Map> createIndexListById(List objectItemList, Function idFun) {
return objectItemList.stream().collect(Collectors.toMap(idFun,
p -> {
List getObjectItemTempList = new ArrayList<>();
getObjectItemTempList.add(p);
return getObjectItemTempList;
},
(List value1, List value2) -> {
value1.addAll(value2);
return value1;
}
));
}
public static Map createIndexById(List objectItemList, Function idFun) {
return objectItemList.stream().collect(Collectors.toMap(idFun, objItem -> objItem));
}
public static List getIndexById(List objectItemList, Function idFun) {
return objectItemList.stream().map(idFun).distinct().collect(Collectors.toList());
}
}
举栗子
Map> xxxItemMapByType = BeanIndexUtil.createIndexListById(xxxItems, XxxInfo::getXxxxIdType); Map xxxMap = BeanIndexUtil.createIndexById(xxxList, XxxVo::getId); List xxxxIds = BeanIndexUtil.getIndexById(xxxList, XxxInfo::getId);
没有太多天分和履历的本分程序猿最终会有归宿吗



