【问题标题】:Lambda expression - List to Map [duplicate]Lambda 表达式 - 映射列表 [重复]
【发布时间】:2018-09-13 16:28:18
【问题描述】:

我想将一个字符串列表转换为一个映射,其中映射的键是一个简单的增量。

例如:

List<String> result = new ArrayList<String>();
result.add("hello");
result.add("Java");

假装结果:

Map<Integer, String> mapOfList;
map(1, "Hello");
map(2, "Java");

试试:

AtomicInteger atomic=new AtomicInteger(0);
mapOfList=result.stream().collect(atomic.incrementAndGet(), s -> s);

【问题讨论】:

    标签: java lambda


    【解决方案1】:

    试试这个

    result.stream()
        .collect(Collectors.toMap(element -> atomic.incrementAndGet(), Function.identity());
    

    【讨论】:

    • 函数通常应该是无状态的,尽管在这种情况下文档没有明确说明。 atomic 实际上是 keyMapper 函数的状态。如果您将其更改为并行流,则会弄乱 id。
    猜你喜欢
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多