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 |