当前位置: 首页 > 知识库问答 >
问题:

Java 8通过密钥复制检查将2D数组转换为地图

慕祯
2023-03-14

java 8中,如何使用stream()将2D数组转换为Map。如果键值已经存在,它也应该更新值。

String[][] array=new String[][]{{"a","b"},{"a","c"},{"b","d"}};
HashMap<String,String> map=new HashMap<String,String>();
for(String[] arr:array){
   map.put(arr[0],arr[1]);
}

我试过了

map=Arrays.stream(array).collect(Collectors.toMap(x->x[0],x->x[1]));

错误

错误:(38,45)java:不兼容类型:推理变量R的边界不兼容等式约束:java。util。映射上限:java。util。HashMap,java。lang.反对

共有1个答案

包和泰
2023-03-14

添加合并重复键的运算符:

String[][] array = new String[][]{{"a", "b"}, {"a", "c"}, {"b", "d"}};

Map<String, String> m = Arrays.stream(array)
                              .collect(Collectors.toMap(  kv -> kv[0],
                                                          kv -> kv[1],
                                                          (oldV, newV) -> newV)
                                                       ));

格式化这些一行程序总有一天会成为一个问题

 类似资料:
  • 在这里,我试图将转换为一个1D数组。

  • 问题内容: 在Java中,如何将ArrayList转换为二维数组Object [] []? 从评论中:我将用更多细节向您描述问题:XML文件包含联系人列表(例如姓名,地址…)。我可以获得此信息的唯一方法是通过ArrayList,该列表将提供给我。由于需要将该数组列表的内容以有序方式存储在Java Swing表中,因此我正在考虑将其转换为对象的二维数组 问题答案: 知道每个联系人具有的属性数量,我设

  • 我需要支持Keytool的相同功能。exe通过使用KeyTool类编程将java密钥库转换为PFX文件。由于项目需求的限制,我无法从我的应用程序中使用命令提示符进程,因此通过编程,我也无法打开命令进程。 例如。 C:\keytool-importkeystore-srckeystore。k eystore-srcstoretype JKS-destkeystore-thekeystore。pfx-

  • 问题内容: 我在一个一维数组中有一个例子。它只会输出列。我的想法是使用2d数组选择行和列。这是我的代码: myfile.csv 输出: 名字蒂姆汤姆 问题答案: 我只是将split结果()添加到a中,如果您确实希望将其作为2d数组,则在事后将其转换。

  • 问题内容: 假设我有一个彩色图像,这自然将由python中的3维数组表示,例如形状(nxmx 3),并将其称为img。 我想要一个新的二维数组,将其称为“ narray”,其形状为(3,nxm),以便该数组的每一行分别包含R,G和B通道的“扁平化”版本。而且,它应该具有这样的属性:我可以通过类似以下方法轻松地重建任何原始通道 问题是如何从“ img”构造“ narray”?简单的img.resha

  • 问题内容: 我正在尝试将二维数组转换为具有命名字段的结构化数组。我希望2D数组中的每一行成为结构化数组中的新记录。不幸的是,我没有尝试过以我期望的方式工作。 我从开始: 我想转换为以下形式: 我尝试过的 这两种方法都尝试将myarray中的每个条目转换为具有给定dtype的记录,因此将插入多余的零。我不知道如何获取它以将每一行转换为一条记录。 另一尝试: 这次不执行任何实际转换。内存中的现有数据只