프로그래밍 언어/JAVA

자바에서 List<Integer>를 int[]로 변환하는 방법?

Rateye 2021. 8. 23. 10:38
728x90
반응형
질문 : 목록을 변환하는 방법 자바에서 int []로?

이것은 다음 질문과 유사합니다. Java에서 int []를 Integer []로 변환하는 방법?

저는 Java를 처음 사용합니다. Java에서 List<Integer>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;
}

이 작업을 수행하는 더 좋은 방법이 있다고 확신합니다.

답변

불행하게도, 정말 기본 유형, 권투, 배열 및 제네릭 자바의 처리의 성격이 때문에 일을 더 나은 방법이 생각하지 않습니다. 특히:

  • Integer 에서 int 로의 변환이 없기 때문에 List<T>.toArray
  • 당신은 사용할 수 없습니다 int 그것이 될 것이다, 그래서 제네릭 형식 인수로 int - 특정 방법 (또는 더러운 속임수를 수행하는 데 사용되는 반사 하나).

모든 기본 유형에 대해 이러한 종류의 메서드를 자동 생성 한 라이브러리가 있다고 생각합니다 (즉, 각 유형에 대해 복사되는 템플릿이 있습니다). 추악하지만 그게 두렵습니다 :(

Arrays 클래스가 나왔지만 오늘 도입 된 경우 (기본 배열을 사용하려는 경우) 모든 끔찍한 오버로드를 포함해야합니다.

출처 : https://stackoverflow.com/questions/960431/how-to-convert-listinteger-to-int-in-java
728x90
반응형