所以我有一个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()));