>Java >java지도 시간 >스트림을 사용하여 Java 8에서 목록을 맵으로 변환하려면 어떻게 해야 합니까?

스트림을 사용하여 Java 8에서 목록을 맵으로 변환하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-21 00:49:10491검색

How Can I Convert a List to a Map in Java 8 Using Streams?

Java 8: 목록 변환 to Map

Java 8 이상에서는 타사 라이브러리에 의존하지 않고도 강력한 스트림 API와 람다를 사용하여 객체 목록을 맵으로 쉽게 변환할 수 있습니다. Java 7 예제를 수정해 보겠습니다.

private Map<String, Choice> nameMap(List<Choice> choices) {
    Map<String, Choice> hashMap = choices.stream()
        .collect(Collectors.toMap(Choice::getName, Function.identity()));
    return hashMap;
}

이 코드에서 발생하는 상황은 다음과 같습니다.

  1. stream() 메서드는 원본 List .
  2. collect() 메소드는 스트림을 종료하고 요소를 Map.
  3. Collectors.toMap() 컬렉터는 지도를 생성하는 데 사용됩니다. 두 개의 인수가 필요합니다.

    • 첫 번째 인수는 스트림의 각 요소를 맵의 키에 매핑하는 함수입니다. 여기서 Choice::getName은 각 선택 항목을 해당 이름에 매핑하는 데 사용됩니다.
    • 두 번째 인수는 스트림의 각 요소를 맵 값에 매핑하는 함수입니다. 이 경우 Function.identity()를 사용하여 원래 선택을 값으로 유지합니다.
  4. 결과 Map은 hashMap 변수에 저장되어 반환됩니다.

이 접근 방식은 Java 8 스트림을 활용하여 목록을 맵으로 변환하기 위한 간결하고 효율적인 코드를 작성합니다.

위 내용은 스트림을 사용하여 Java 8에서 목록을 맵으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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