"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java에서 맵 키로 사용하기 위해 int[]를 Integer[]로 변환하는 방법은 무엇입니까?

Java에서 맵 키로 사용하기 위해 int[]를 Integer[]로 변환하는 방법은 무엇입니까?

2024-11-03에 게시됨
검색:259

How to Convert int[] to Integer[] for Use as Map Keys in Java?

Java의 맵 키에 대해 int[]를 Integer[]로 변환: 종합 가이드

Java에서 맵 키에는 참조 동일성이 필요하며 이는 달성할 수 없습니다. int[]와 같은 기본 유형을 사용합니다. int[] 배열로 작업하고 이를 맵의 키로 사용해야 하는 경우 이를 적합한 객체 유형으로 변환해야 합니다. 이 변환에 대한 다양한 옵션을 살펴보겠습니다.

방법 1: Arrays.stream().boxed().toArray()

Java 8에서는 int[]를 Integer[로 변환하는 간결한 방법을 도입했습니다. ] 스트림 API 사용:

int[] data = {1,2,3,4,5,6,7,8,9,10};

Integer[] primitiveToBoxed = Arrays
        .stream(data)
        .boxed()
        .toArray(Integer[]::new);

방법 2: IntStream.of().boxed().toArray()

IntStream을 사용하는 유사한 접근 방식:

Integer[] primitiveToBoxed = IntStream
        .of(data)
        .boxed()
        .toArray(Integer[]::new);

맵 키 고려 사항

Integer[]는 키 역할을 할 수 있지만 다음과 같은 이유로 이상적이지 않을 수 있습니다.

  • 오버로딩: 정수는 -128에서 127 사이의 값을 캐시하므로 더 큰 데이터 세트에서 잠재적인 충돌이 발생할 수 있습니다.
  • 성능 오버헤드: 정수[]는 새 정수를 생성합니다. 각 int 값에 대한 개체로 인해 추가 오버헤드가 발생합니다.

대체 옵션

더 나은 성능과 키 고유성을 위해 다음 사용을 고려하세요.

  • Custom 객체: 효율적인 조회를 위해 int[]를 캡슐화하고 hashCode() 및 equals()를 구현하는 사용자 정의 클래스를 만듭니다.
  • Longs: 긴 값은 정수를 나타낼 수 있으므로 다음과 같은 작업을 수행할 수 있습니다. Integer[]보다 성능이 뛰어난 지도에서 키로 사용됩니다.
  • 외부 라이브러리: 성능이 뛰어난 방식으로 기본 유형을 처리하는 특수 컬렉션을 찾으려면 Apache Commons Collections Library 또는 Google Guava를 살펴보세요.

가장 좋은 접근 방식은 데이터 세트의 크기와 성능 요구 사항에 따라 다르다는 점을 기억하세요. 적절한 기술을 선택하면 데이터세트에서 int[] 조합의 빈도를 효율적으로 추적할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3