我们如何编写程序,使用流过滤年龄大于22岁的员工列表并按名字排序。
必须有效地展示Java 8的最终功能。
我只是尝试如下:-
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class MaximumUsingStreamMain {
public static void main(String args[])
{
List<Employee> employeeList = createEmployeeList();
List<String> employeeFilteredList = employeeList.stream()
.filter(e->e.getAge()>22)
.map(Employee::getName)
.collect(Collectors.toList());
employeeFilteredList.forEach((name)-> System.out.println(name));
}
public static List<Employee> createEmployeeList()
{
List<Employee> employeeList=new ArrayList<>();
Employee e1=new Employee("John",21);
Employee e2=new Employee("Martin",19);
Employee e3=new Employee("Mary",31);
Employee e4=new Employee("Stephan",18);
Employee e5=new Employee("Gary",26);
employeeList.add(e1);
employeeList.add(e2);
employeeList.add(e3);
employeeList.add(e4);
employeeList.add(e5);
return employeeList;
}
}
您可以使用getter名称来调用排序
.sorted(Comparator.comparing(Employee::getName)))
或如果要排序的列表已经具有可比性,则仅排序。
.sorted()