본문 바로가기
BACK-END/JAVA

Java list 동일한 크기로 분할 나누기 (Guava)

by 개남 2022. 12. 5.

자바 리스트(list)에 담겨있는 내용을 일정크기로 분할해서 리스트에 담고싶을때 사용하면 편리한 library가 있습니다.

바로 구글 Guava 입니다. guava의 partition 함수를 이용하면 편리하게 list를 분할할 수 있습니다.

설정

//pom.xml
<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>31.1-jre</version>
</dependency>

//build.gradle
dependencies {
  // Pick one:
  // 1. Use Guava in your implementation only:
  implementation("com.google.guava:guava:31.1-jre")
  // 2. Use Guava types in your public API:
  api("com.google.guava:guava:31.1-jre")
  // 3. Android - Use Guava in your implementation only:
  implementation("com.google.guava:guava:31.1-android")
  // 4. Android - Use Guava types in your public API:
  api("com.google.guava:guava:31.1-android")
}

maven을 사용하시면 pom.xml의 내용을 gradle을 사용하시면 build.gradle의 내용을 추가하시면 됩니다.

구현

import com.google.common.collect.Lists;
import java.util.List;
import java.util.Arrays;
 
class Main
{
    public static void main(String[] args)
    {
        // List생성
        List<Integer> myList= Arrays.asList(1, 2, 3, 4, 5);
        
       //2의 사이즈를 가지는 리스트로 분리
        List<List<Integer> > lists= Lists.partition(myList, 2);
  
        // 출력
        for (List<Integer> sublist: lists)
            System.out.println(sublist);
    }
}

사용법은 Lists.partition(분리할list,분리할list사이즈) 로 사용하시면 됩니다. 위의 코드를 실행하면 다음과 같이 출력됩니다.

[1, 2]
[3, 4]
[5]

DB에서 select한 값을 insert를 하려는데 select 값이 너무 많을때 java에서 분할해서 저장하면 유용하게 사용할 수 있습니다. 

댓글