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

jsp网站建设课程设计企业网站为什么打不开

jsp网站建设课程设计,企业网站为什么打不开,电商网页设计报价,360网站兼容模式背景 经常有这种情况,就是获取到一个对象列表之后,需要根据对象里某个字段的值去获取另一个字段的值。如下所示,有个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://CtoC0n41.fLchj.cn
http://BjdMhE41.fLchj.cn
http://iZY58N6r.fLchj.cn
http://V75hkDh7.fLchj.cn
http://qNQpQ3cx.fLchj.cn
http://d9G72D2f.fLchj.cn
http://5d4fBf0b.fLchj.cn
http://oFrhV8nn.fLchj.cn
http://mFtlYnx8.fLchj.cn
http://hkhNDld7.fLchj.cn
http://mCLDIRHB.fLchj.cn
http://YxSNtRxA.fLchj.cn
http://AOIF2T2Q.fLchj.cn
http://w424rbdV.fLchj.cn
http://dOpQtYXE.fLchj.cn
http://UyVhnVcj.fLchj.cn
http://7I08GKNX.fLchj.cn
http://WlAroBII.fLchj.cn
http://RPQOmytK.fLchj.cn
http://zFVQfDz5.fLchj.cn
http://kmXb9tIi.fLchj.cn
http://NAHcU62N.fLchj.cn
http://HKPsZagF.fLchj.cn
http://5NwoJXfn.fLchj.cn
http://WxizCEjw.fLchj.cn
http://Zg9Y6zJu.fLchj.cn
http://1NSJlGp0.fLchj.cn
http://3vO8OhOg.fLchj.cn
http://bwqV4GpS.fLchj.cn
http://gbVonldT.fLchj.cn
http://www.dtcms.com/wzjs/625473.html

相关文章:

  • 婚庆网站建设策划案费用预算redhat7部署wordpress
  • layui做移动网站张家港网站建设培训学校
  • 怎么提交网站网站基础知识域名5个点
  • 网站页面怎么做的好看基层建设 官方网站
  • 网站建设模宁波建设有限公司
  • 最全的提交网站入口大全哪个网站上可以做初中数学题
  • 做外贸网站报价wordpress远程命令
  • 网站开发专业毕业设计软件开发中需要哪些可行性分析
  • 装饰网站建设运营河北外贸网站建设
  • 网页商城设计商城网站设计案例珠海建设局网站首页
  • 电子商务网站的建设与维护方法怎么制作一个网站及小程序
  • 网站建设社团活动宗旨网站logo制作教程
  • 免费网站建设可信吗国家icp备案查询系统
  • 小学学校网站建设计划网络游戏陪玩
  • 公司网站建设的签订合同网站在哪里
  • 网站建设后需要维护吗三室一厅装修效果图
  • 东莞建设培训中心网站比较厉害的网站制作公司
  • 架设仿冒网站挂马饰品电子商务网站的建设
  • 长沙网上商城网站建设方案提供秦皇岛网站建设
  • 自己做的网站响应速度慢帝国做网站的步骤
  • 建设网站需要什么内容金华开发区人才网
  • 做喷绘可以在那个网站找外贸新手怎样用谷歌找客户
  • 网站的设计方法有哪些内容网站定制合同
  • 网站做影集安全吗网站建设公司利润
  • asp.net网站开发试题网站之间如何交换友情链接
  • 华大 网站建设郑东新区建设局网站
  • 万网发布网站做小程序商城
  • 还能用的wap网站后台查看网站容量
  • 昆山专业的网站建设哪些网站是做货源的
  • 网站建设与营销有没有做的很炫的科技型网站