练习1:集合中存储一些字符串的数据,比如:鹿晗,34
收集到Student类型的数组中(使用方法引用完成)
Student类:
package a10functiondemo;
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 + "}";
}
}
测试类:
package a10functiondemo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class FunctionDemo7 {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
Collections.addAll(list,"鹿晗,34" ,"天空,42","王瑞昌,27","林更新,37","魏大勋,35","刘学义,34","肖宇梁,29");
//先把字符串变成Student对象,然后再把Student对象收集起来
Student[] arr = list.stream().map(Student::new).toArray(Student[]::new);
System.out.println(Arrays.toString(arr));
}
}
运行结果:
练习2:创建集合添加学生对象,学生对象属性:name,age
只获取姓名并放到数组中(使用方法引用完成)
Student类同上
测试类:
package a10functiondemo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.function.Function;
public class FunctionDemo8 {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<>();
list.add(new Student("zhangsan",23));
list.add(new Student("lisi",24));
list.add(new Student("wangwu",25));
/* String[] arr = list.stream().map(new Function<Student, String>() {
@Override
public String apply(Student student) {
return student.getName();
}
}).toArray(String[]::new);
System.out.println(Arrays.toString(arr));
*/
String[] arr2 = list.stream().map(Student::getName).toArray(String[]::new);
System.out.println(Arrays.toString(arr2));
}
}
运行结果: