Javaでリストをマップに変換する方法


方法1: forループを使用して変換する方法

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ListToMapExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("key1");
        list.add("value1");
        list.add("key2");
        list.add("value2");
        Map<String, String> map = new HashMap<>();
        for (int i = 0; i < list.size(); i += 2) {
            String key = list.get(i);
            String value = list.get(i + 1);
            map.put(key, value);
        }
        System.out.println(map);
    }
}

方法2: Java 8のStream APIを使用して変換する方法

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class ListToMapExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("key1");
        list.add("value1");
        list.add("key2");
        list.add("value2");
        Map<String, String> map = IntStream.range(0, list.size() / 2)
                .boxed()
                .collect(Collectors.toMap(i -> list.get(i * 2), i -> list.get(i * 2 + 1)));
        System.out.println(map);
    }
}

これらの例では、最初にリストにキーと値のペアを交互に追加し、その後、forループまたはStream APIを使用してリストをマップに変換しています。どちらの方法も効果的にリストをマップに変換することができます。