[JAVA8] 람다식을 이용한 Batch Insert 구현하기
Java 8 에서 람다식을 이용한 Batch Insert 구현하기 조회한 데이터의 사이즈가 커서 일정 단위로 잘라 넣어야 할 일이 생겼다. 람다식을 이용한 메서드를 만들어 사용하였으며, 간결하다고 생각되어 해당 메서드를 공유해 본다. public static <T>Stream <List<T>> batches (List<T> source, int length) { if (length <= 0) throw new IllegalArgumentException("length = " + length); int size = source.size(); if (size <= 0) return Stream.empty(); int fullChunks = (size - 1) / length; return IntStream.range(0, fullChunks + 1).mapToObj( n -> source.subList(n * length, n == fullChunks ? size : (n + 1) * length)); } (코드 스타일이 적용이 되지 않아 실제 구현된 메서드는 텍스트로 표현) // 사용 예) public static void main(String[] args) { List list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14); System.out.println("By 3:"); batches(list, 3).forEach(System.out::println); System.out.println("By 4:"); batches(list, 4).forEach(System.out::println); } ...