我正在尝试从对象列表[]中创建一个Hashmap,但我无法这样做。以下是我写的代码:
List<Object[]> adjustments = query.getResultList();
Map<Integer, BigDecimal> dpaMap = adjustments.stream().collect(Collectors.toMap(a -> (Integer)a[0], a -> (BigDecimal)a[1]));
我知道只有两个字段从查询中返回,它们具有Map中提到的相同类型,但它不起作用。请指导我这方面。
先谢谢。
答案 0 :(得分:4)
所以看起来它运行正常,DB中的列返回Float所以只需将其转换为BigDecimal
Map<Integer, BigDecimal> dpaMap = adjustments.stream().collect(Collectors.toMap(a -> (Integer)a[0], a -> BigDecimal.valueOf((Float) a[1])));
非常感谢你的帮助。