java—在对象列表上应用groupingby之后,如何获取对象而不是列表

x4shl7ld  于 2021-07-08  发布在  Java
关注(0)|答案(2)|浏览(567)

我正在对一个对象列表进行分组,如下代码所示

Map<String, List<InventoryAdjustmentsModel>> buildDrawNumEquipmentMap = equipmentsAndCargoDetails.stream().
                collect(Collectors.groupingBy(InventoryAdjustmentsModel :: getBuildDrawNum));

现在我知道所有键的值都只有一个元素,那么如何将其减少到只有一个元素呢

Map<String, InventoryAdjustmentsModel>

而不必遍历或获取所有键的第0个元素。

xn1cxnb4

xn1cxnb41#

像这样试试。通过使用 toMap 您可以指定 key 以及 value . 既然你说没有重复的钥匙,这就不包括 merge 方法。这意味着您将得到一个错误,如果重复键被发现。我想你会想知道的。

Map<String, InventoryAdjustmentsModel> buildDrawNumEquipmentMap = 
                 equipmentsAndCargoDetails.stream().
            collect(Collectors.toMap(InventoryAdjustmentsModel::getBuildDrawNum, 
                     model->model));
scyqe7ek

scyqe7ek2#

您可以将tomap收集器与这样的合并函数一起使用。

Map<String, InventoryAdjustmentsModel> resultMap = equipmentsAndCargoDetails.stream().
    collect(Collectors.toMap(InventoryAdjustmentsModel::getBuildDrawNum, 
        e -> e, (a, b) -> a));

相关问题