使用流和lambda表达式创建映射列表

时间:2016-08-05 17:39:36

标签: collections lambda java-8 java-stream

for (String varValue : arrayList1) {
                Map<String, String> mapInstance = new HashMap<>();
                val.put(KEY, VALUE);
                val.put(VAR_KEY, varValue);
                arrayList2.add(mapInstance);
            }

基本上,我想创建一个包含两个条目的地图,然后将每个地图添加到一个列表中。

最终名单:

{KEY,VALUE}   {VAR_KEY,arrayList1.get(0)}
{KEY,VALUE}   {VAR_KEY,arrayList1.get(1)}
{KEY,VALUE}   {VAR_KEY,arrayList1.get(2)}
...
and so on

2 个答案:

答案 0 :(得分:3)

您似乎只需要一个简单的map阶段。

List<Map<String, String>> list = arrayList1.stream().map(t -> {
  Map<String, String> map = new HashMap<>();
  map.put("KEY", "VALUE");
  map.put("VAR_KEY", t);
  return map;
}).collect(Collectors.toList());

答案 1 :(得分:0)

什么是KEY和VAR_KEY?它们是你试图从传入对象放入Map的某个对象的实例变量。

但是,您可以尝试这样的事情: 地图结果=                 arrayList1.stream()。collect(Collectors.toMap(Class :: getKey,c - &gt; c));