当前位置: 首页 > wzjs >正文

1简述网站建设流程图西安网站建设哪家好

1简述网站建设流程图,西安网站建设哪家好,纯静态网站怎么入侵,在中国建设银行的网站上可以转账吗背景 经常有这种情况,就是获取到一个对象列表之后,需要根据对象里某个字段的值去获取另一个字段的值。如下所示,有个Item对象列表,Item对象里有个id字段和Value字段,现需要根据id的值去查询value的值。 // 测试数据Li…

背景

经常有这种情况,就是获取到一个对象列表之后,需要根据对象里某个字段的值去获取另一个字段的值。如下所示,有个Item对象列表,Item对象里有个id字段和Value字段,现需要根据id的值去查询value的值。

        // 测试数据List<Item> items = Arrays.asList(new Item("1", "Item1"),new Item("2", "Item2"),new Item("3", "Item3"));
    @Datastatic class Item {private final String id;private final String name;private String value;public Item(String id, String name) {this.id = id;this.name = name;}}@Datastatic class Value {private String id;private String value;public Value(String id, String value) {this.id = id;this.value = value;}}

实现

常规写法

如下:

        // 先将id取出来List<String> ids = items.stream().map(Item::getId).collect(Collectors.toList());// 根据id获取valueMap<String, Value> valueMap = getValueMap(ids);// 遍历items,设置valueitems.stream().forEach(item -> {String id = item.getId();Value value = valueMap.get(id);if (Objects.nonNull(value)) {item.setValue(value.getValue());}});

使用工具类

写法如下:

        Collection<Item> res = keyValueMapping(items,Item::getId,keys -> getValueList(keys),Value::getId,(item, values) -> item.setValue(values.get(0).getValue()),false);// 模拟工具id获取valuepublic static List<Value> getValueList(List<String> ids) {List<Value> values = Lists.newArrayList();for (String id : ids) {values.add(new Value(id, "Value" + id));}values.remove(2);return values;}

工具类代码

public class FieldMappingUtil {private FieldMappingUtil() {}public static <T, K, V> void keyValueMapping(Collection<T> list, Function<T, K> getKey,Function<List<K>, List<V>> key2Values,Function<V, K> valueGroup,BiConsumer<T, List<V>> setGroupedValues) {keyValueMapping(list, getKey, key2Values, valueGroup, setGroupedValues, false);}public static <T, K, V> void keyValueMapping(Collection<T> list, Function<T, K> getKey,Function<List<K>, List<V>> key2Values,Function<V, K> valueGroup,BiConsumer<T, List<V>> setGroupedValues,Consumer<Collection<T>> unmappedData) {boolean returnUnmappedData = Objects.nonNull(unmappedData);Collection<T> unmapped = keyValueMapping(list, getKey, key2Values,valueGroup, setGroupedValues, returnUnmappedData);if (returnUnmappedData && CollUtil.isNotEmpty(unmapped)) {unmappedData.accept(unmapped);}}public static <T, K, V, R> R keyValueMappingReturn(Collection<T> list,Function<T, K> getKey,Function<List<K>, List<V>> key2Values,Function<V, K> valueGroup,BiConsumer<T, List<V>> setGroupedValues,Function<Collection<T>, R> unmappedData) {boolean returnUnmappedData = Objects.nonNull(unmappedData);Collection<T> unmapped = keyValueMapping(list, getKey, key2Values,valueGroup, setGroupedValues, returnUnmappedData);if (returnUnmappedData && CollUtil.isNotEmpty(unmapped)) {return unmappedData.apply(unmapped);}return null;}private static <T, K, V> Collection<T> keyValueMapping(Collection<T> list,Function<T, K> getKey,Function<List<K>, List<V>> key2Values,Function<V, K> valueGroup,BiConsumer<T, List<V>> setGroupedValues,boolean returnUnmappedData) {if (CollUtil.isNotEmpty(list)) {// 源数据中非空的keyList<K> nonNullKeys = list.stream().map(getKey).filter(Objects::nonNull).collect(Collectors.toList());if (CollUtil.isNotEmpty(nonNullKeys)) {// 根据源数据获取目标数据List<V> allValues = key2Values.apply(nonNullKeys);if (CollUtil.isNotEmpty(allValues)) {// 目标数据按照key分组Map<K, List<V>> map = allValues.stream().collect(Collectors.groupingBy(valueGroup));// 遍历源数据,设置分组后的目标值return list.stream().filter(t -> {// 获取当前对象keyK key = getKey.apply(t);// 根据key获取目标数据List<V> values = map.get(key);if (CollUtil.isNotEmpty(values)) {// 设置目标值到当前对象setGroupedValues.accept(t, values);return true;} else {return returnUnmappedData;}}).collect(Collectors.toList());}}}return returnUnmappedData ? list : null;}
}

http://www.dtcms.com/wzjs/83414.html

相关文章:

  • 宜昌网站建设开发团队网站 软件
  • 网站全局变量seo文章推广
  • 360网站做推广深圳网络推广哪家比较好
  • 公司网站建设介绍烟台seo关键词排名
  • 本地做网站贵班级优化大师头像
  • 内部网站开发网站自动秒收录工具
  • 班级网站建设主题龙岗网站建设
  • 网站建设分辨率做seo需要哪些知识
  • 网站名称备案教程seo推广排名网站
  • 网站暂时关闭 seo人民日报今日头条新闻
  • 柴沟堡做网站淄博seo
  • 十堰网站设计公司百度推广费用多少钱
  • 区块链交易网站建设中国域名注册局官网
  • 外贸移动商城网站建设怎么建立自己的企业网站
  • 怎么给网站做 360快照个人博客网页设计
  • 渭南市住建设局网站最新搜索引擎排名
  • 深圳市科技网站开发seo百度刷排名
  • 网站找谁做靠谱吗seo公司后付费
  • 网站首页psd百度热门排行榜
  • 青岛城阳软件网站开发百度seo关键词排名推荐
  • 电商的网站怎么做的好中国教育培训网
  • 医疗室内设计网站推荐网络营销具有哪些优势和吸引力
  • 网站建设与维护就业前景永久免费的电销外呼系统
  • 网站基础上添加建设方案模板网站排名优化方案
  • 河南共青团智慧团建登录入口南宁百度seo
  • 打鱼网站建设北京网站seo招聘
  • 网站内容运营荆州seo推广
  • wordpress无法添加小工具关键词优化排名用什么软件比较好
  • 建筑网站推荐百度搜索指数和资讯指数
  • 外贸公司网站设计哪家好网站技术外包公司