zoukankan      html  css  js  c++  java
  • fastjson使用, mysql left join 合并多条数据, ArrayUtils.addAll注意事项, list set转化, stream流式处理

    fastJson中java对象 jsonObject jsonArray之间转换 【原文】

    1. java对象转jsonObject

      User u = new User();
      u.setName("yinyuy");
      JSONObject json = (JSONObject) JSONObject.toJSON(u);
      
    2. jsonArray添加jsonObject

       User u = new User();
       u.setName("yinyuy");
       JSONArray jsonArray = new JSONArray();
       JSONObject json = (JSONObject) JSONObject.toJSON(u);
       jsonArray.add(json);
      
    3. 解析jsonArray对象为java对象集合

       List<AnswerSheet> listAnswerJson = JSONArray.parseArray(userAnswerSheetJsonArr.toString(),AnswerSheet.class);
      

    left join 时 只查询重复数据的一条【原文】

    select a.id from app a
    left join (select uid,id,name from weixin  group by uid) b on a.id=b.uid
    
    注意:如果开启了sqlmode full_group_by group by 前面的select 只能查询group by 的字段,这个sql就会有问题
    

    ArrayUtils.addAll 注意事项

    ArrayUtils.addAll 合并2个数组,底层是使用System.arraycopy方法实现。
    只支持2个数组合并,不支持多个。
    虽然编译通过,但是会报错 Cannot store java.io.Serializable in an array of java.lang.String

    array list set转换方式 【原文】

    1. set转array, toArray方法

       Set<String> jobNumbers = new HashSet<>();
       String[] jobNumber = jobNumbers.toArray(new String[jobNumbers.size()])
      
    2. array转set, Arrays.asList方法

       String[] jobNumers = entity.getTeamMonitorJobNumber().split(",");
       Set<String> jobNumbers = new HashSet<>(Arrays.asList(jobNumers ));
      
    3. List转Set, Set转List

       Set<String> set = new HashSet<>(list);
       System.out.println("set: " + set);
      
       List<String> list_1 = new ArrayList<>(set);
       System.out.println("list_1: " + list_1);
      

    使用流式处理数组或者列表

    // 过滤列表,输出为列表
    List<DictDTO> curr = dictDTOS.stream().filter(data -> StringUtils.equalsIgnoreCase(pointMaterialRes.getExchangeType(),data.getDictKey())).collect(Collectors.toList());
    // 选取对象某属性,输出为数组
    String[] materialIdArray = materialEntities.stream().map(data -> data.getId().toString()).toArray(String[]::new);
    // 选取对象某属性,输出为字符串,用,拼接
    String data = staffDTOS.stream().map(StaffDTO::getName).collect(Collectors.joining(","))
  • 相关阅读:
    优秀的云架构师需要学什么技能
    dkh人力资源大数据解决方案整体架构
    大数据hadoop与spark的区别
    hadoop技术入门学习之发行版选择
    大数据开发基础知识需要掌握哪些
    智慧人社政务云平台建设方案架构案例介绍
    [项目机会]citrix 虚拟桌面对于java等高CPU占用率如何解决
    [办公自动化]无法使用江南天安usbkey 无法使用视频网站
    [学习笔记]从0到1
    [办公自动化]目录修改以及插入分页符后行间距自动变宽
  • 原文地址:https://www.cnblogs.com/cuiyf/p/15539924.html
Copyright © 2011-2022 走看看