数据量大时避免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);  
        }  
    }  

这样的时间复杂度会降低,时间会大大降低

 

posted @ 2025-06-06 16:27  逝年的我们  阅读(24)  评论(0)    收藏  举报