JAVA

java stream() inner join, left join

오수진님. 2022. 4. 19. 14:45
728x90

Inner Join

Map<Long, User> userIdMap = userList.stream()
        .collect(Collectors.toMap(User::getUserId, Function.identity()));
 
List<Pair<Order, User,>> innerJoinList = orderList.stream()
        .filter(it -> userIdMap.containsKey(it.getUserId()))
        .map(it -> Pair.of(it, userIdMap.get(it.getUserId())))
        .collect(Collectors.toList());

 

 

Left Join

Map<Long, Order> orderIdMap = orderList.stream()
        .collect(Collectors.toMap(Order::getUserId, Function.identity()));
 
List<User> leftJoinUser = userList.stream()
        .filter(it -> !orderIdMap.containsKey(it.getUserId()))
        .collect(Collectors.toList());