안그래보이지만 개발자/백엔드

정수 어레이리스트(ArrayList)를 정수 배열로 변환하기 + 정렬

자네트 2020. 10. 27. 11:32
반응형

 

 


Integer 어레이리스트를 int 배열로 변환하려고 하는 경우

list.toArray(new int[size]) 방식으로는 오류가 나서 여길 찾아왔을 것이다

 

JAVA 8 이상일 경우 stream API 사용

한줄로 깔끔하게 변환 가능하다.

int[] arr = {};
ArrayList<Integer> list = new ArrayList<Integer>();

//1번방법
arr = list.stream().mapToInt(i->i).toArray();
//혹은 2번방법
arr = list.stream().mapToInt(Integer::intValue).toArray();

감동의 도가니..

 

filter를 넣어줄 수도 있다.

예시는 null값을 제외하는 필터이다.

//1번방법
arr = list.stream().filter(Objects::nonNull).mapToInt(i->i).toArray();
//2번방법
arr = list.stream().filter(i -> i != null).mapToInt(i->i).toArray();

역시나 감동의 도가니...

 

 

구글 구아바를 사용하면 더 깔끔하다.

List<Integer> list = ...;
int[] values = Ints.toArray(list);

어마어마......

하지만 구아바를 사용하지 못한다면 stream을 사용하는 것이 간편할 것이다.

 

 

출처 : https://qastack.kr/programming/718554/how-to-convert-an-arraylist-containing-integers-to-primitive-int-array

 

JAVA7 이하라면

..반복문 돌리자...

 

 

✅ 어레이리스트 정렬

//list라는 어레이리스트가 있을 때
//오름차순
Collections.sort(list);
//내림차순
Collections.reverse(list);

 

 

 


 

 

반응형