解释一下这段代码: Set<String> plugSdk = plugExportDTO.getPlugInfoExportDTOList().stream().filter(plugInfoExportDTO ->plugInfoExportDTO.getPlugSdk() != null ).collect(Collectors.mapping(PlugInfoExportDTO::getPlugSdk, Collectors.toSet()));
时间: 2023-05-16 08:05:59 浏览: 85
这段代码使用了 Java 8 的 Stream API,首先从 plugExportDTO 对象中获取一个 PlugInfoExportDTO 对象列表,然后使用 filter 方法过滤掉 PlugInfoExportDTO 对象中 plugSdk 属性为 null 的对象,接着使用 mapping 方法将 PlugInfoExportDTO 对象转换为 plugSdk 属性的值,最后使用 toSet 方法将所有的值收集到一个 Set 集合中。简单来说,这段代码的作用是从一个 PlugExportDTO 对象中提取出所有非空的 plugSdk 属性值,并将它们存储到一个 Set 集合中。
相关问题
解释一下这段代码:Set<String> plugSdk = plugExportDTO.getPlugInfoExportDTOList().stream().filter(plugInfoExportDTO -> plugInfoExportDTO.getPlugSdk() != null ) .collect(Collectors.mapping(PlugInfoExportDTO::getPlugSdk, Collectors.toSet()));
这段代码是使用 Java 8 的 Stream API 对一个包含 PlugInfoExportDTO 对象的列表进行过滤和映射操作,最终得到一个 Set<String> 类型的结果。具体来说,代码首先使用 filter() 方法过滤掉 PlugInfoExportDTO 对象中 plugSdk 属性为 null 的元素,然后使用 mapping() 方法将剩余元素的 plugSdk 属性映射为 String 类型,最后使用 toSet() 方法将结果收集到一个 Set 集合中。
解释一下 public void testUnKownCode(){ List<MachineRecordModel> list = machineRecordService.getListByUnkownGoodsCode(); List<String> goodsCodes = list.stream().map(MachineRecordModel::getCodeContent).collect(Collectors.toList()); List<TextDataModel> existsList = tempTextDataService.getListByGoodsCodes(goodsCodes); Set<String> existsCodesSet = existsList.stream().map(TextDataModel::getGoodBar).collect(Collectors.toSet()); List<TextDataModel> needInsertList = goodsCodes.stream().filter(code -> !existsCodesSet.contains(code)) .map(code -> { TextDataModel textDataModel = new TextDataModel(); textDataModel.setGoodBar(code); textDataModel.setHas(0); return textDataModel; }).collect(Collectors.toList()); tempTextDataService.saveBatch(needInsertList); System.out.println(""); }
这段代码是一个 Java 中的方法,这个方法名是 testUnKownCode,它的访问修饰符是 public,返回值类型是 void,也就是不返回任何值。这个方法会调用 machineRecordService 的 getListByUnkownGoodsCode 方法,返回一个 MachineRecordModel 类型的列表。然后利用 Java 8 的 Stream 特性,将 MachineRecordModel 类型的列表转换为一个 String 类型的列表。接着,使用得到的 String 类型列表,调用 tempTextDataService 的 getListByGoodsCodes 方法,返回一个 TextDataModel 类型的列表。再次使用 Stream 特性,将这个 TextDataModel 类型的列表转换为一个 String 类型的 HashSet(无序集合)。利用 Stream 特性,过滤出需要插入的数据,并且将字符串类型的数据转换为一个 TextDataModel 类型的列表,然后调用 tempTextDataService 的 saveBatch 方法批量保存这些数据。最后,这个方法会输出一个空字符串。
阅读全文