• Java 代码和使用steam流(List对象使用流操作示例,Java正则匹配,获取当前操作系统)


    list 转list

    List cdids = deviceId.stream().map(s -> UUID.fromString(s.trim())).collect(Collectors.toList());

    list对象分组

    Map> map = elecMonthStatementTemplates.stream().collect(Collectors.groupingBy(ElecMonthStatementTemplate::getElecTableName));

    object转对象

    ObjectMapper objectMapper = new ObjectMapper();

    UserModel userModel = objectMapper.convertValue(claims, UserModel.class);

    遍历list替换指定的值

    • for (DropofpressureVo list : s) {
    • DropofpressureVo vo=new DropofpressureVo();
    • List collect = list.getList().stream().map(str -> str.contains("-") ? "-" : str).collect(Collectors.toList());
    • vo.setList(collect);
    • vo.setTime(list.getTime());
    • vo.setName(list.getName());
    • w.add(vo);
    • }

    Java  使用正则匹配

    • public static void main(String[] args) {
    • String str = "10.0*0.067+247.0*0.1283+(1.24+1.2+1.2+0+0+19+3013.2+0.25+0.45+0.0005*1000+0.32+704.6+0.35+490.66+0.5+0.4+0.49+0.55+0.305+0.3+0.22+0.26+0.31+0.26+0.15+0.1+3.6+6.0+0.3+85.44+0.35+0.31+0.62)*(862+249+(726+0+2296)*1/12)/(0+862+249+726+2296+17496+0)+(694.3+0.24+0.34)*0.0591+(0+9590+0+0+0+9396+0+1699.6+765+360.6+359+441.1+0.56+0.24+490.4+484.9+0.36+121.28)*0.1233+2.2+13.2+0+(0.36+121.28)*0.1522";
    • String regex = "\\(([^\\(\\)]+)\\)";
    • Pattern pattern = Pattern.compile(regex);
    • Matcher matcher = pattern.matcher(str);
    • List list = new ArrayList<>();
    • while (matcher.find()) {
    • list.add(matcher.group(1));
    • }
    • for (String val : list) {
    • System.out.println("val = " + val);
    • }
    • }

    从list中查找对应的值

    • Optional cartOptional = zuodouTaskItems.stream().filter(item -> item.getId().equals(record.getItemsId())).findFirst();
    • if (cartOptional.isPresent()) {
    • // 存在
    • ZuodouTaskItem zuodouTaskItem = cartOptional.get();
    • record.setQty(new BigDecimal(zuodouTaskItem.getQty()));
    • record.setRQty(new BigDecimal(zuodouTaskItem.getRQty()));
    • record.setIId(zuodouTaskItem.getIId());
    • } else {
    • // 不存在
    • }

    获取操作系统

    System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") != -1

    List对象拿指定属性

    List asIdList = zuodouTaskDatasArrayList.stream() .map(ZuodouTaskDatas::getAsId) // 使用map方法提取属性值.collect(Collectors.toList());

    根据civerid分组统计

    我一个list对象需要根据 chapterName ,chapterOrder 两个属性分组 返回 [ {chapterName :第一 ,chapterOrder :1 , datas:[ List ] } , {chapterName :第二 ,chapterOrder :2 , datas:[ List ] } ]

    • List> result = zuodouCourseManagementVos.stream()
      • .sorted(Comparator.comparing(ZuodouCourseManagementVo::getChapterOrder))
        • .collect(Collectors.groupingBy(ZuodouCourseManagementVo::getChapterName))
        • .entrySet().stream()
        • .map(entry -> {
          • Map group = new HashMap<>();
            • group.put("chapterName", entry.getKey());
            • group.put("chapterOrder", entry.getValue().get(0).getChapterOrder());
            • group.put("datas", entry.getValue());
          • return group;
    • }).collect(Collectors.toList());
    • 首先使用 sorted 方法对 zuodouCourseManagementVos 进行排序,按照 chapterOrder 属性进行升序排序。然后,使用 groupingBy 方法按照 chapterName 将列表分组。接着,使用 entrySet 方法获取分组后的 Map 的键值对集合,并使用 stream 进行处理。对于每个键值对,我们创建一个新的 Map 对象 group,并将 entry.getKey()(即 chapterName)作为键,entry.getValue().get(0).getChapterOrder()(即第一个元素的 chapterOrder)作为值。然后,将分组的数据列表 entry.getValue() 作为 datas 的值。最后,收集这些 Map 对象到一个列表中。这样,你将获得一个列表 result,其中每个元素都包含 chapterName、chapterOrder 和对应的数据列表。

    根据指定属性返回匹配值

    List matchedElements = zuodouCourseManagementVos.stream() .filter(vo -> vo.getChapterName().equals(targetChapterName) && vo.getChapterOrder() == targetChapterOrder) .collect(Collectors.toList());

  • 相关阅读:
    [华为认证]路由表和FIB表
    5.2 Ajax 数据爬取实战
    kafka学习之三_信创CPU下单节点kafka性能测试验证
    AlGaN/GaN HFET 五参数模型
    docker入门
    【php】PHP语言基础
    弘辽科技:玩转店铺标签,能让你首页流量快速起爆
    知道做到 一篇总结学习方法的笔记
    springboot集成Actuator+Prometheus+Grafana
    Node.js-初识Node.js与内置模块
  • 原文地址:https://blog.csdn.net/andrew_dear/article/details/134436196