[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 <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) { Listlist = 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); }
refs :
댓글
댓글 쓰기