You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dart中将List<String>转换为Map<String,String>?

将List转换为键值相同的Map<String,String>

下面是几种实用的实现方式,适配不同场景:

1. 基础循环实现(兼容所有Java版本)

这是最直观的写法,手动遍历列表并填充Map:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ListToMapDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("name");
        list.add("class");
        list.add("age");
        
        Map<String, String> map = new HashMap<>();
        for (String item : list) {
            map.put(item, item);
        }
        
        // 输出结果: {name=name, class=class, age=age}
        System.out.println(map);
    }
}

2. Java 8+ Stream API实现

用Stream的Collectors.toMap可以更简洁地完成转换:

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class ListToMapStreamDemo {
    public static void main(String[] args) {
        List<String> list = List.of("name", "class", "age");
        
        // 列表无重复元素时直接用
        Map<String, String> map = list.stream()
                .collect(Collectors.toMap(item -> item, item -> item));
        
        // 列表可能有重复元素时,添加合并规则避免抛出异常(示例保留旧值)
        Map<String, String> mapWithDuplicateHandle = list.stream()
                .collect(Collectors.toMap(item -> item, item -> item, (oldVal, newVal) -> oldVal));
        
        System.out.println(map);
    }
}

注意:如果列表存在重复元素,未指定合并规则的toMap会抛出IllegalStateException,必须添加合并逻辑处理冲突。

3. Guava工具库实现

如果项目已引入Guava,可以用它的工具方法简化操作:

import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import java.util.List;

public class ListToMapGuavaDemo {
    public static void main(String[] args) {
        List<String> list = List.of("name", "class", "age");
        
        // 生成不可变Map
        ImmutableMap<String, String> immutableMap = ImmutableMap.copyOf(Maps.asMap(list, item -> item));
        
        // 生成可变Map
        Map<String, String> mutableMap = Maps.toMap(list, item -> item);
        
        System.out.println(immutableMap);
    }
}

内容的提问来源于stack exchange,提问作者dvijai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:04:53