main:
public class FunctionDemo8 {
public static void main(String[] args) {
/*
* 需求:
* 创建集合添加学生对象
* 学生对象属性:name,age
* 要求:
* 获取姓名并放到数组当中
* 使用方法引用完成
* */
ArrayList<Student> list=new ArrayList<>();
list.add(new Student("张三",23));
list.add(new Student("李四",24));
list.add(new Student("王五",25));
/* //将Student类型的数组变成String类型
String[] array = list.stream().map(new Function<Student, String>() {
@Override
public String apply(Student student) {
return student.getName();//获取姓名并返回到数据流
}
}).toArray(String[]::new);//将数据流中的数据放到String数组中*/
//简洁方法(使用类名引用方法)
String[] array = list.stream().map(Student::getName).toArray(String[]::new);
System.out.println(Arrays.toString(array));
//运行结果:[张三, 李四, 王五]
}
}
Student类:
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String str) {
String[] arr = str.split(",");
this.name = arr[0];
this.age = Integer.parseInt(arr[1]);
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return age
*/
public int getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Student{name = " + name + ", age = " + age + "}";
}
}