Java 8在对集合的处理引入了stream的概念,任何集合类都可以转换成stream,然后应用java 8提供的内置函数(比如filter,match,map等)来实现我们的业务逻辑。
根据id,查询list里面的employee
源码:
public Employee getEmployee(Integer employeeId){
for(Employee employee:employeeList){
if(employee.getId().equals(employeeId)){
return employee;
}
}
return null;
}
修改后:
public Employee getEmployee(final Integer employeeId){
return employeeList.stream()
.filter(employee -> employee.getId().equals(employeeId))
.findFirst()
.get();
}
查询list中是否包涵id=10的员工
源码:
public boolean isExist(Integer employeeId){
for(Employee employee:employeeList){
if(employee.getId().equals(employeeId)){
return true;
}
}
return false;
}
修改后:
public boolean isExist1(Integer employeeId){
return employeeList.stream().
anyMatch(employee -> employee.getId().equals(employeeId));
}
查询list中id>100的所有员工
源码:
public List<Employee> getEmployees(){
List<Employee> employees = new ArrayList<>();
for(Employee employee:employeeList){
if(employee.getId()>100){
employees.add(employee);
}
}
return employees;
}
修改后:
public List<Employee> getEmployees(){
return employeeList.stream()
.filter(employee -> employee.getId()>100)
.collect(Collectors.toList());
}
查询list中所有人的名字
源码:
public List getAllNames() {
List<String> names = new ArrayList<>();
for (Employee employee : employeeList) {
names.add(employee.getName());
}
return names;
}
修改后
public List<String> getAllNames() {
return employeeList.stream()
.map(employee -> employee.getName())
.collect(Collectors.toList());
}