java - 将 List<Object[]> 数组转换为 Map

标签 java lambda hashmap java-8 java-stream

我正在尝试从对象列表[]中创建 HashMap ,但我无法这样做。下面是我写的代码:

List<Object[]> adjustments =  query.getResultList();
Map<Integer, BigDecimal> dpaMap = adjustments.stream().collect(Collectors.toMap(a -> (Integer)a[0], a -> (BigDecimal)a[1]));

我知道只有两个字段从查询中返回,它们具有与映射中提到的相同类型,但它不起作用。请在这方面指导我。

提前致谢。

最佳答案

看来它工作正常,数据库中的列返回 Float,所以只需将其转换为 BigDecimal

Map<Integer, BigDecimal> dpaMap = adjustments.stream().collect(Collectors.toMap(a -> (Integer)a[0], a -> BigDecimal.valueOf((Float) a[1])));

非常感谢大家的帮助。

关于java - 将 List<Object[]> 数组转换为 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40280928/

相关文章:

java - 从方法中移除阻塞

python - 以特定方式对文件进行排序

Java 8 和方法引用 - 特别是 compareToIgnoreCase

java - 如何查找 ArrayList 中的字符串是否包含字符形式的数字

java - 如何使用 Java 配置表示 Spring Security "custom-filter"?

java - 是否可以使用 Java 8 流构造 : 更简洁地表达以下逻辑

java字符串函数需要帮助

python - 按字典中元组的元素组织?

java - 在带有 HashMap 的 Java 中使用 Line2D

c++ - 使用优先级队列分离链接(使用 std::map)