java8特性使用技巧
1.List-》Map
List<MarketExecPojo> bondsExecPojos = queryRemoteData(s);
Map<String, List<MarketExecPojo>> xBondMap = bondsExecPojos.stream() .filter(i -> "有效".equals(i.getExecType())) .collect(Collectors.groupingBy(MarketExecPojo::getBondCode));
2.排序sorted
List<BusinessSoundPojo> value = entry.getValue().stream().sorted(Comparator.comparing(BusinessSoundPojo::getSeqNo)).collect(Collectors.toList());
#reversed从大到小
List<AbstractQuoteDepth> quoteDepthList = quoteDepthListOld.stream().sorted(Comparator.comparingDouble(AbstractQuoteDepth::getPrice)
.reversed().thenComparingLong(AbstractQuoteDepth::getSendingTime)).collect(Collectors.toList());
3.map的使用
将getApplCode作为List里面的值
List<String> applCodes = roles.stream().map(Role::getApplCode).collect(Collectors.toList());
4.allMatch(),anyMatch(),noneMatch()使用
allMatch:必须全都符合
anyMatch:符合一个就可以
noneMatch:全部都不符合
private boolean checkDuplicate(Set<String> selfSet, Set<String> themSet) { return themSet.stream().anyMatch(key -> { boolean duplicated = selfSet.contains(key); if (duplicated) { LOGGER.warn("the configKey [{}] is duplicated.", key); } return duplicated; }); }
详细参考:https://www.jianshu.com/p/6950c8b61ccd
5.distinct去重
String temp = list.stream().distinct().collect(Collectors.joining(BaseConstant.COMMA));
6.flatMap的使用
private static final Map<String, Map<Integer, Map<String, CurvePojo>>> CURVE_GROUP_DEFINITION_MAP = new HashMap<>(); CURVE_GROUP_DEFINITION_MAP.values().stream() .flatMap(i -> i.values().stream().flatMap(j -> j.values().stream())) .anyMatch(i -> i.getCurrency().equals(currency));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2022-02-05 模板方法
2022-02-05 工厂方法模式