> Java > java지도 시간 > Java 목록을 맵으로 효율적으로 변환하는 방법은 무엇입니까?

Java 목록을 맵으로 효율적으로 변환하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-27 10:28:13
원래의
618명이 탐색했습니다.

How to Efficiently Convert a Java List to a Map?

Java에서 목록을 맵으로 변환하는 방법

Java에서 컬렉션으로 작업할 때 목록을 맵으로 변환하는 것은 일반적인 요구 사항일 수 있습니다. . 이 변환에 대한 최적의 접근 방식을 이해하면 성능과 코드 가독성이 크게 향상될 수 있습니다.

최적 변환 접근 방식

전통적인 접근 방식:
전통적인 접근 방식 접근 방식에는 루프를 사용하고 각 목록 요소를 맵 키-값 쌍에 수동으로 매핑하는 것이 포함됩니다. 이 접근 방식은 간단하지만 대규모 목록에는 비효율적일 수 있습니다.

Java 8 스트림:
Java 8에서는 컬렉션을 조작하는 강력하고 간결한 방법을 제공하는 스트림을 도입했습니다. 스트림을 사용하면 한 줄로 목록을 지도로 변환할 수 있습니다.

Map<Integer, String> resultsMap = results.stream()
                                         .collect(Collectors.toMap(o -> (Integer) o[0], o -> (String) o[1]));
로그인 후 복사
로그인 후 복사

스트림 사용의 이점:

  • 결론: 스트림 기반 접근 방식은 기존 루프 기반 접근 방식보다 훨씬 더 간결합니다. 접근 방식.
  • 효율성: 스트림은 병렬 처리에 최적화되어 있어 대규모 목록의 성능을 크게 향상시킬 수 있습니다.
  • 유연성: 스트림은 다양한 기능을 제공합니다. 요소를 요소로 변환하기 전에 필터링, 정렬 및 그룹화하는 기능과 같은 추가 기능 지도.

다음 개체 목록을 고려하세요.

List<Object[]> results = new ArrayList<>();
results.add(new Object[] {1, "Item 1"});
results.add(new Object[] {2, "Item 2"});
로그인 후 복사

이 목록을 지도로 변환하려면 다음을 수행하세요. 스트림 기반 접근 방식을 사용합니다.

Map<Integer, String> resultsMap = results.stream()
                                         .collect(Collectors.toMap(o -> (Integer) o[0], o -> (String) o[1]));
로그인 후 복사
로그인 후 복사

이 코드는 정수로 맵을 생성합니다. 목록의 값을 키로, 문자열 값을 값으로.

추가 고려 사항:

  • 매핑 함수가 전단사적이 아닌 경우(즉, 매핑할 수 있음) 여러 요소를 동일한 키에 적용) 이항 연산자를 사용하여 중복 키와 연결된 값을 병합할 수 있습니다.
  • 또한 Collectors.groupingBy() 메서드를 사용하여 지정된 키 기능을 기반으로 요소를 그룹화하는 맵을 생성하세요.

위 내용은 Java 목록을 맵으로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿