如何循环列表对象并通过索引获取它的元素?

Ham*_*hri 6 java java-8

我正在尝试将一个函数从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)

Ber*_*eri 7

您可以使用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)


Eug*_*ene 4

 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)