我正在尝试将一个函数从java 7迁移到java8,但是在循环列表的时候,我总是想要获取索引元素的值.这样做的好方法是什么?
这是我正在尝试迁移的代码:
List<Employe> listEmploye = new ArrayList<>();
for(int i=0; i< ids.size();i++)
{
Long idLong = Long.valueOf(ids.get(i));
BigDecimal idBig= BigDecimal.valueOf(idLong);
listEmploye.add(findByIdPointage(idBig));
}
Run Code Online (Sandbox Code Playgroud)
您可以使用Stream API来映射您的集合:
List<Employe> listEmploye = ids.stream()
.map(Long::valueOf)
.map(BigDecimal::valueOf)
.map(this::findByIdPointage)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
List<Employe> listEmploye = ids.stream()
.mapToLong(Long::parseLong)
.mapToObj(BigDecimal::valueOf)
.map(this::findByIdPointage)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
那么有一个BigDecimal构造函数需要 a String,因此可以简化为:
List<Employe> listEmploye = ids.stream()
.map(BigDecimal::new)
.map(this::findByIdPointage)
.collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |