SeouliteLab

[Java/자바] Stream을 이용하여 List를 Map으로 변환하는 방법 본문

프로그래밍

[Java/자바] Stream을 이용하여 List를 Map으로 변환하는 방법

Seoulite Lab 2024. 3. 15. 01:09

Java에서는 Stream API를 이용하여 간결하고 효율적으로 List를 Map으로 변환할 수 있습니다. 이번에는 Stream을 이용한 여러 가지 예제를 살펴보겠습니다.

1. List를 Map으로 변환하는 기본적인 방법

가장 기본적인 방법은 Stream의 `collect` 메서드를 사용하여 List의 각 요소를 Map의 키-값으로 추가하는 것입니다.

import java.util.*;
import java.util.stream.*;

public class ListToMapExample {
    public static void main(String[] args) {
        List list = Arrays.asList("A", "B", "C");

        Map map = list.stream()
                                     .collect(Collectors.toMap(item -> item, String::length));

        System.out.println("Map: " + map); // 출력 결과: Map: {A=1, B=1, C=1}
    }
}

2. List의 인덱스를 키로 사용하는 방법

List의 각 요소와 인덱스를 사용하여 Map을 생성하는 예제입니다.

import java.util.*;
import java.util.stream.*;

public class ListToMapExample {
    public static void main(String[] args) {
        List list = Arrays.asList("Apple", "Banana", "Cherry");

        Map map = IntStream.range(0, list.size())
                                            .boxed()
                                            .collect(Collectors.toMap(i -> i, list::get));

        System.out.println("Map: " + map); // 출력 결과: Map: {0=Apple, 1=Banana, 2=Cherry}
    }
}

3. List의 요소를 값으로 설정하는 방법

List의 각 요소를 Map의 값으로 설정하는 예제입니다.

import java.util.*;
import java.util.stream.*;

public class ListToMapExample {
    public static void main(String[] args) {
        List list = Arrays.asList("Dog", "Cat", "Bird");

        Map map = IntStream.range(0, list.size())
                                            .boxed()
                                            .collect(Collectors.toMap(Function.identity(), list::get));

        System.out.println("Map: " + map); // 출력 결과: Map: {0=Dog, 1=Cat, 2=Bird}
    }
}

4. List의 길이를 값으로 설정하는 방법

List의 각 요소의 길이를 Map의 값으로 설정하는 예제입니다.

import java.util.*;
import java.util.stream.*;

public class ListToMapExample {
    public static void main(String[] args) {
        List list = Arrays.asList("Apple", "Banana", "Orange");

        Map map = list.stream()
                                      .collect(Collectors.toMap(Function.identity(), String::length));

        System.out.println("Map: " + map); // 출력 결과: Map: {Apple=5, Banana=6, Orange=6}
    }
}

5. List의 요소를 특정 값으로 설정하는 방법

List의 각 요소를 특정 값으로 설정하여 Map을 생성하는 예제입니다.

import java.util.*;
import java.util.stream.*;

public class ListToMapExample {
    public static void main(String[] args) {
        List list = Arrays.asList("One", "Two", "Three");

        Map map = list.stream()
                                      .collect(Collectors.toMap(Function.identity(), s -> s.length() * 2));

        System.out.println("Map: " + map); // 출력 결과: Map: {One=6, Two=6, Three=10}
    }
}

6. List를 키와 값으로 사용하는 방법

List를 키와 값으로 사용하여 Map을 생성하는 예제입니다.

import java.util.*;
import java.util.stream.*;

public class ListToMapExample {
    public static void main(String[] args) {
        List keys = Arrays.asList("key1", "key2", "key3");
        List values = Arrays.asList("value1", "value2", "value3");

        Map map = IntStream.range(0, keys.size())
                                            .boxed()
                                            .collect(Collectors.toMap(keys::get, values::get));

        System.out.println("Map: " + map); // 출력 결과: Map: {key1=value1, key2=value2, key3=value3}
    }
}

위 예제들을 통해 Stream을 이용하여 List를 Map으로 변환하는 다양한 방법을 살펴보았습니다. 이를 통해 데이터를 보다 효율적으로 관리할 수 있게 됩니다.