java - 如何转换HashMap
问题描述
我正在尝试将HashMap<Object, int[]>
值转换为 int[][]。
我有 HashMap<Character, int[]>
我想要 map 的所有值int[][]
merge(map.values().toArray());
这给我一个编译错误。
Line 18: error: incompatible types: Object[] cannot be converted to int[][]
int[][] arr = merge(map.values().toArray());
合并函数的签名。
public int[] merge(int[][] arr){
//doing something
}
解决方案
我正在尝试将
HashMap<Object, int[]>
值转换为int[][]
.
我认为您的方法的签名是错误的,因此int[][]
要从地图的值中获取,您可以使用:
public static int[][] merge(Collection<int[]> arr){
return arr.toArray(new int[0][]); // Java11+: return arr.toArray(int[][]::new);
}
然后你像这样调用合并方法:
int[][] result = merge(map.values());
推荐阅读
- python - Flask 框架使用 GET 而不是指定 POST 方法
- php - 如何在 PHP 中使用 MONTH("2020-02-25") 从数据库中获取数据
- movilizer - 无法选择当前日期作为未来日期
- android - 由于错误膨胀类 androidx.constraintlayout.widget.ConstraintLayout 无法在 Android Studio 上运行我的应用程序
- sql - 根据另一个表上的字段长度更新
- android - 是否必须在 Android 的 MVVM 模式中使用 ViewModel 和实时数据类?否则我们可以在不使用它们的情况下使用 MVVM 模式吗?
- javascript - react 不允许为分页映射单独的组件
- apache-spark - Spark SQL(语言,而不是 API)和来自 UDF 的行数据访问
- python - 自定义验证器破坏密码更改表单
- primefaces - 如何仅使用 p:media 隐藏 pdf 文件的下载选项?