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

Muh*_*mer 0 java lambda hashmap java-8 java-stream

我正在尝试从 Objects[] 列表中制作一个 Hashmap,但我无法这样做。下面是我写的代码:

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

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

提前致谢。

Muh*_*mer 5

所以它似乎工作正常,数据库中的列正在返回 Float 所以只需要将它转换为 BigDecimal

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

感谢很多人的帮助。