>  기사  >  Java  >  Java의 맵 키에 대해 `int[]`를 `Integer[]`로 변환하는 방법은 무엇입니까?

Java의 맵 키에 대해 `int[]`를 `Integer[]`로 변환하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-01 11:59:02200검색

How to Convert an `int[]` to an `Integer[]` for Map Keys in Java?

맵 키에 대해 int[]를 Integer[]로 변환하는 방법

Java에서 컬렉션 및 맵으로 작업할 때 다음 사항이 중요합니다. 기본 데이터 유형의 한계를 알고 있습니다. 정수 배열을 Map의 키로 저장해야 하는 경우와 같은 특정 상황에서는 Map 키가 객체여야 하기 때문에 기본 int[] 배열을 직접 사용할 수 없습니다. 여기서 int[]를 Integer[]로 변환하는 것이 유용합니다.

특정한 경우 int[] 배열의 대규모 데이터세트가 있고 Map 각 배열 조합의 빈도를 계산합니다. 이 문제를 해결할 수 있는 방법은 다음과 같습니다.

Java 8(One Line)

Java 8은 스트림을 사용하여 int[]를 Integer[]로 변환하는 간단한 방법을 제공합니다.

<code class="java">int[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

// To boxed array
Integer[] boxedData = Arrays.stream(data).boxed().toArray(Integer[]::new);</code>

컬렉터 사용

또는 컬렉터를 사용하여 int[]를 List로 변환한 다음 Integer로 변환할 수 있습니다. [] 배열:

<code class="java">int[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

// To boxed list
List<Integer> boxedList = Arrays.stream(data).boxed().collect(Collectors.toList());

// To boxed array
Integer[] boxedData = boxedList.toArray(new Integer[boxedList.size()]);</code>

참고:

맵 키로 사용하기 위해 int[]를 Integer[]로 변환하는 것이 가능하지만 다음을 고려하는 것이 중요합니다. 배열을 키로 사용할 때의 단점. 여기에는 다음이 포함됩니다.

  • 배열은 변경 가능하므로 예기치 않은 동작과 잠재적인 메모리 누수가 발생할 수 있습니다.
  • 배열은 값 기반이 아닙니다. 즉, 요소는 동일하지만 서로 다른 두 개의 배열이 있음을 의미합니다. 참조는 다른 키로 처리됩니다.

대부분의 경우 배열 대신 사용자 정의 객체나 래퍼 클래스를 맵 키로 사용하는 것이 좋습니다.

위 내용은 Java의 맵 키에 대해 `int[]`를 `Integer[]`로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.