数据量大时避免list双循环导致时间复杂度提升优化使用Map
首先我们经常再开发过程中,为了实现某种业务需求,不可避免的会使用双层循环来实现;数据量不大时可以;但如果两个循坏的数据量都很大的时;就会造成时间复杂度的提升;很浪费时间;
比如一个list有10万条数据;另外一个list2有5万条数据;如果这两个嵌套在不进行任何处理的情况下需要多少次循坏呢?50亿次;时间复杂复为O(K^n),我们可以利用map优化后实现0=(k)
优化代码
// 各种条件和判断需要根据实际情况进行判断 Map<Long, String> contentMap = list.stream().collect(Collectors.toMap(UserMemo::getUserId, UserMemo::getContent)); for (User user : list2) { Long userId = user.getUserId(); String content = contentMap.get(userId); if (StringUtils.hasLength(content)) { System.out.println("Processing mock business content... " + content); } }
这样的时间复杂度会降低,时间会大大降低

春有百花秋有月,夏有凉风冬有雪!

浙公网安备 33010602011771号