目录
一、Stream流
1、引言
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("张大侠");
list.add("金毛狮王");
list.add("青翼蝠王");
list.add("张三疯a");
list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length()==4).forEach(
System.out::println
);
}
2、流式思想概述
3、获取流
4、常用方法
package com.dzg.estream;
import com.dzg.domain.Person;
import com.dzg.domain.Pson;
import java.util.ArrayList;
import java.util.stream.Stream;
public class StreamTest {
public static void main(String[] args) {
ArrayList<String> one = new ArrayList<>();
one.add("老邓头");
one.add("张大侠");
one.add("金毛狮王");
one.add("青翼蝠王");
one.add("张三疯a");
ArrayList<String> two = new ArrayList<>();
two.add("张无忌");
two.add("周芷若");
two.add("刘若彤");
two.add("张三");
two.add("李四");
ArrayList<String> oneA = new ArrayList<>();
for (String name:
one) {
if(name.length() == 3){
oneA.add(name);
}
}
ArrayList<String> oneB = new ArrayList<>();
for (int i = 0; i <2 ; i++) {
oneB.add(oneA.get(i));
}
ArrayList<String> twoA = new ArrayList<>();
for (String name:
two) {
if(name.startsWith("张")){
twoA.add(name);
}
}
ArrayList<String> twoB = new ArrayList<>();
for (int i = 2; i < twoA.size(); i++) {
twoB.add(two.get(i));
}
ArrayList<String> totalNames = new ArrayList<>();
totalNames.addAll(oneB);
totalNames.addAll(twoB);
ArrayList<Pson> personArrayList = new ArrayList<>();
for (String name:
totalNames) {
personArrayList.add(new Pson(name));
}
for (Pson person :
personArrayList ) {
System.out.println(person);
}
/**
* 上述是使用传统的方式处理,下面使用Stream流的方式处理
*/
System.out.println("====================================");
/**
* 第一个队伍只要名字为三个字的成员中,前三位
*/
Stream<String> streamOne = one.stream().filter(s->s.length()==3).limit(3);
/**
* 第二队伍只要性张的,去掉前两位
*/
Stream<String> streamTwo = two.stream().filter(s -> s.startsWith("张")).skip(2);
/**
* 将两个队伍合并为一个队伍,并根据Pson类创建对象,打印出所有对象
*/
Stream.concat(streamOne,streamTwo).map(Pson::new).forEach(System.out::println);
}
}
二、方法引用
1、冗余的Lambda场景
2、方法改进
3、方法引用符
4、通过对象名引用成员方法
5、通过类名称引用静态方法
6、 通过super引用成员方法
7、通过this引用成员方法
8、类的构造器引用
9、数组的构造器引用
但是更好的写法是使用数组的构造器引用: