java基础知识总结一

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a656678879/article/details/82979455

java基础知识总结一

  1. Map之一个Key存多个Value的MultiValueMap(一个键多个值)
	MultiValueMap<String, String> stringMultiValueMap = new LinkedMultiValueMap<>();
    // 添加Key为name的
    stringMultiValueMap.add("name", "yolanda");
    stringMultiValueMap.add("name", "yanzhenjie");
  1. java Stream的Collectors.groupingBy分组后的排序问题
private List<ExportAllOrder> constructDetailData(List<ExportAllOrder> listOrder) {
        final Map<Long, OrderAllGoodsSpecVo> integerOrderAllGoodsSpecVoMap = orderMapper.listAllBossOrderGoodsSpec();
        List<ExportAllOrder> groupList = new ArrayList<ExportAllOrder>();
        //主要看下面这一行,设置LinkedHashMap(有序的map),不在使用默认的HashMap(无序)
        listOrder.stream().collect(Collectors.groupingBy(ExportAllOrder::getOrderCode, LinkedHashMap::new, Collectors.toList())).forEach((orderCode, orderListByorderCode) -> {
            final int[] i = {0};
            orderListByorderCode.stream().forEach(o -> {
                //保留父订单的数据,清空子订单数据
                if (i[0] != 0) {
                    o.setOrderCode("");
                    o.setCustomerNickName("");
                    o.setShippingPerson("");
                    o.setShippingPhone("");
                    o.setShippingMobile("");
                    o.setShippingProvince("");
                    o.setShippingCity("");
                    o.setShippingCounty("");
                    o.setShippingAddress("");
                    o.setShippingPostcode("");
                    o.setExpressPrice(null);
                    o.setOrderPrice(null);
                    o.setCustomerRemark("");
                    o.setRemark("");
                    o.setOrderLinePay(null);
                    o.setInfoRealname("");
                    o.setWxNo("");
                    o.setOrderStatus("");
                    o.setOrderLinePayStr("");
                    o.setIsExamine("");
                    o.setAgainBuy("");
                    o.setBackOrderStatus("");
                }
                if (integerOrderAllGoodsSpecVoMap.containsKey(o.getGoodsInfoId())) {
                    o.setSpecInfo(integerOrderAllGoodsSpecVoMap.get(o.getGoodsInfoId()).getSpecInfo());
                }
                i[0]++;
                groupList.add(o);
            });
        });
        return groupList;
    }
  1. mysql的group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])使用
SELECT
        goods_info.goods_info_id,
        GROUP_CONCAT(goods_spec.spec_name,":",goods_info_rele_spec_detail.spec_value_remark) specInfo
      FROM
        np_goods_info goods_info
        INNER JOIN np_goods goods ON goods_info.goods_id = goods.goods_id
        INNER JOIN np_goods_info_rele_spec_detail goods_info_rele_spec_detail ON goods_info.goods_info_id = goods_info_rele_spec_detail.goods_info_id
        INNER JOIN np_goods_spec goods_spec ON goods_info_rele_spec_detail.spec_id = goods_spec.spec_id
      GROUP BY goods_info.goods_info_id;
  1. 大数据报表查询-文章传送们
- 先查询数据在处理数据,不要查询数据之后,数据不够时在处理数据中(循环中)再次查询

猜你喜欢

转载自blog.csdn.net/a656678879/article/details/82979455