将List <object []> Array转换为Map

时间:2016-10-27 09:26:58

标签: 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]));

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

先谢谢。

1 个答案:

答案 0 :(得分:4)

所以看起来它运行正常,DB中的列返回Float所以只需将其转换为BigDecimal

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

非常感谢你的帮助。