要使用Function Mapper使用现有列表中的字段中的值创建新列表,下面是一个示例。在这里,我们有一个Employee类-
class Employee {
private String emp_name;
private int emp_age;
private String emp_zone;
}以下是使用Function Mapper从现有列表创建新列表的示例-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
public class Demo {
public static void main(String args[]) {
List < Employee > emp = Arrays.asList(new Employee("Jack", 29, "South"), new Employee("Tom", 24, "North"),
new Employee("Harry", 35, "West"), new Employee("Katie", 32, "East"));
List < String > res = processElements(emp, p -> p.displayEmpName());
System.out.println("Employee Names + " + res);
}
public static < X, Y > List < Y > processElements(Iterable < X > src,
Function < X, Y > mapper) {
List < Y > list = new ArrayList <> ();
for (X p: src)
list.add(mapper.apply(p));
return list;
}
}
class Employee {
private String emp_name;
private int emp_age;
private String emp_zone;
public Employee(String emp_name, int emp_age, String emp_zone) {
this.emp_name = emp_name;
this.emp_age = emp_age;
this.emp_zone = emp_zone;
}
public String displayEmpName() {
return this.emp_name;
}
}输出结果
Employee Names + [Jack, Tom, Harry, Katie]