List<Integer>를 int[]로 바꿀수 있나요?


발생하는 문제 및 실행환경

자바를 배우는 중인데요. List를 int[]로 바꿀 수 있을까요? List.toArray()라는 메소드가 있긴한데 이건 반환하는 자료형이 Object[] 잖아요. 저는 Integer[]나 int[]로 받고싶거든요 어떻게 하면되죠? 지금은 그냥 반복문 돌려서 하나하나 넣어주고 있는데 더 좋은 방법 없을까요?

소스코드

int[] toIntArray(List<Integer> list){
  int[] ret = new int[list.size()];
  for(int i = 0;i < ret.length;i++)
    ret[i] = list.get(i);
  return ret;
}
  • 2016년 01월 18일에 작성됨

조회수 322


1 답변


좋아요
0
싫어요
채택취소하기
  • Integer를 int로 바꿀수 없기때문에 List.toArray 는 안됩니다.
  • 제네릭 타입에 인수로 int를 쓸 수 없습니다.

자바의 Boxing이나 배열, 제네릭 타입 그런 기본타입을 다루는 특성들 때문에 List를 int[]로 바꾸는 직접적인 방법은 없습니다. 공용라이브러리를 쓰는 방법이 있는데 Guava의 Ints.toArray같은 방법입니다.

소스코드

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

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close