import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Test {
    public static void main(String[] args) {
        
        List<int[]> list = IntStream.rangeClosed(1, 10)
            .mapToObj(n->getIntArray())
            .collect(Collectors.toList());
        
        
        //Arrays.stream은 인자로 int[]을 받아 우리가 생각하는 int하나하나를 요소로하는 스트림을 만든다.
        IntStream intStream = Arrays.stream(getIntArray());
        //Arrays.asList는 얼핏보면 List<Integer>로 만들어 줄 것 같지만, 아니다.
        List<int[]> list2 = Arrays.asList(getIntArray());
        
        //방법 1 반복문 이용
        List<Integer> list3 = arrayToList(getIntArray());
        //방법 2 스트림 이용
        List<Integer> list4 = intStream.boxed().collect(Collectors.toList());
        
        //번외, List<int[]> List<Integer>로 변환
        List<Integer> list5 = list.stream()
            .map(Test::arrayToList)
            .flatMap(li->li.stream())
            .collect(Collectors.toList());
    }
    
    static List<Integer> arrayToList(int[] arr){
        List<Integer> tmpList = new ArrayList<>();
        for(int v : arr) {
            tmpList.add(v);
        }
        return tmpList;
    }
    
    static int[] getIntArray() {
        return ThreadLocalRandom.current()
                .ints(1, 101)
                .limit(50)
                .toArray();
    }
    
}

 

구아바 같은 라이브러리를 사용하지 않고는

기본형 배열에서 리스트로 변환은 방법1이 가장 현실적인 것 같다.

 

 

 

'개발 > 자바(JAVA)' 카테고리의 다른 글

컴포지트 패턴 연습 - 2  (0) 2023.04.16
컴포지트 패턴 연습 - 1  (0) 2023.04.13
객체 지향 - 6  (0) 2023.02.03
객체 지향 - 5  (0) 2023.02.01
객체 지향 - 4  (0) 2023.01.31

+ Recent posts