所以我有一个insIds的整数列表,从中我可以得到一个ABC列表,我想将它们映射到map中的一个条目(注意,我们不能从Abc.getIns获取getInsId)

这就是我想要的样子:(但是由于我们没有getInsId,因此我们无法以这种方式编写)

Map<Integer, Integer> insIdToAbcId = abcController
          .findAbcsByInsIds(insIds)
          .stream()
          .collect(Collectors.toMap(Abc::getInsId,
            Abc::getAbcId));


我不确定如何编写它以具有所需的映射关系。

已知整数列表:insIds

已知函数将采用insIds并返回列表:

abcController.findAbcsByInsIds(insIds)


然后是我不确定的问题:如何将insId映射到AbcId

(预期输出:Map<Integer, Integer> insIdToAbcId

最佳答案

如果insIds中的项目与findAbcsByInsIds()的结果之间存在一对一的有序关系,则可以按索引加入列表:

List<Abc> abcs = abcController.findAbcsByInsIds(insIds);
Map<Integer, Integer> insIdToAbcId = IntStream.range(0, insIds.size())
        .boxed()
        .collect(Collectors.toMap(insIds::get, i -> abcs.get(i).getAbcId()));

10-06 05:08