英文:
How to use Java 8 Stream API without collect method?
问题
我有一个需要解决的问题,我应该从一个雇员列表中查找第n个性别为男性的雇员,使用Java 8的流,如果找不到,返回一个空的Optional。
class Employee{
private int id;
private String name;
private String gender;
//getters and setters
}
以下是一个方法,它接受一个雇员对象的列表和一个整数n,其中n表示要返回的第n个男性雇员(如果存在)。
Optional<Employee> nthMaleEmployee(List<Employee> employees, int n){
}
以下是我对这个问题的解决方案,使用了Java 8的流和collect方法。
return employees.stream().filter((e)-> e.getGender().equalsIgnoreCase("male")).collect(Collectors.toList()).get(n-1);
是否有任何不使用collect方法的流解决方案?我的问题要求在不使用collect方法的情况下使用流。
英文:
I have a problem to solve where I should find the nth Employee whose gender is Male from a list of Employees using java 8 streams, if nothing found return Optional empty.
class Employee{
private int id;
private String name;
private String gender;
//getters and setters
}
Below is the method which accepts a list of Employee objects and integer n where n denotes the nth male employee that has to be returned if exists.
Optional<Employee> nthMaleEmployee(List<Employee> employees, int n){
}
Below is my solution for the question using java 8 streams and collect method.
return employees.stream().filter((e)-> e.getGender().equalsIgnoreCase("male")).collect(Collectors.toList()).get(n-1);
Is there any solution with streams not using collect method? My problem statement is to use streams without using collect method.
答案1
得分: 2
使用skip方法跳过列表中的(n-1)个元素,然后使用findFirst方法可获取第n个元素。
英文:
Use the skip method to skip (n-1) elements in the list and findFirst method would give you the nth element.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论