学习stream api 记录一下笔记
public class StreamToMap {
List<Student> list = Arrays.asList(new Student(1, 18, "阿才"),
new Student(2, 18, "小强" ),
new Student(3, 18, "啊星"));
@Test
public void listToMap(){
/ /jdk1.8 lambda 表达式
Map<Integer, Student> map = list.stream().collect(Collectors.toMap(Student::getId, student->student));
// 遍历打印结果
map.forEach((key, value) -> {
System.out.println("key: " + key + " value: " + value);
});
}
@Test
public void listToMapByName){
// value 为对象中的属性
Map<Integer, String> map = list.stream().collect(Collectors.toMap(Student::getId, Student::getName));
map.forEach((key, value) -> {
System.out.println("key: " + key + " value: " + value);
});
}
@Test
public void listToListByName(){
// value 为对象中的属性
List< String> list1 = list.stream().map(e -> e.getName()).collect(Collectors.toList());
list1.forEach((value) -> {
System.out.println( "value: " + value);
});
}
@Test
public void listToList(){
List<String> wordList = new ArrayList<>();
wordList.add("a");
wordList.add("b");
wordList.add("c");
// value 为对象中的属性
List<String> output = wordList.stream().
map(String::toUpperCase).
collect(Collectors.toList());
output.forEach((value)-> System.out.println(value));
}
@Test
public void filtList() {
Integer[] sixNums = {1, 2, 3, 4, 5, 6};
Integer[] evens =
Stream.of(sixNums).filter(n -> n%2 == 0).toArray(Integer[]::new); //过滤操作
System.out.println(evens[0]);
}
}
class Student{
Integer id;
Integer age;
String name;
public Student(Integer id, Integer age, String name) {
super();
this.id = id;
this.age = age;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}