Stream
package _04_Stream;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Stream_01 {
public static void main(String[] args) {
String[] strings = {"a","b","c","d"};
Stream<String> stream1 = Stream.of(strings);
List<String> strings2 = Arrays.asList(strings);
Stream<String> stream2 = strings2.stream();
Stream<Integer> stream3 = Stream.generate(()->1);
stream3.limit(10).forEach(x-> System.out.println(x));
Stream<Integer> stream4 = Stream.iterate(1,x->x+2);
stream4.limit(5).forEach(x-> System.out.println(x));
String string = "asdf";
IntStream is = string.chars();
is.forEach(x-> System.out.println(x));
}
}
方法引用和构造器调用
package _03_FunCall;
import java.util.function.Supplier;
public class FunCall_01 {
public static void main(String[] args) {
Integer i1 = 10;
String str = i1.toString();
System.out.println(str);
Supplier<String > su = ()->i1.toString();
System.out.println(su.get());
Supplier<String> su1 = i1::toString;
System.out.println(su1.get());
}
}
package _03_FunCall;
import java.util.function.BiFunction;
public class FunCall_02 {
public static void main(String[] args) {
int max = Integer.max(10,33);
BiFunction<Integer,Integer,Integer> bf = Integer::max;
System.out.println(bf.apply(10,33));
}
}
package _03_FunCall;
import java.util.function.BiPredicate;
public class FunCall_03 {
public static void main(String[] args) {
BiPredicate<String,String> bp = String::equals;
System.out.println(bp.test("asd","asd"));
}
}
package _03_FunCall;
import java.util.function.Supplier;
public class FunCall_04 {
public static void main(String[] args) {
Object o1 = new Object();
Supplier<Object> sp = Object::new;
System.out.println(sp.get());
}
}
package _03_FunCall;
import java.util.function.BiFunction;
import java.util.function.Function;
public class FunCall_05 {
public static void main(String[] args) {
Integer[] is = new Integer[10];
Function<Integer,Integer[]> fun = Integer[]::new;
is = fun.apply(5);
System.out.println(is.length);
is[0] = 100;
BiFunction<Integer[],Integer,Integer> bc = (arr,index)->arr[index];
System.out.println(bc.apply(is,0));
}
}
中间操作
package _04_Stream;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Stream_02 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("a", "b", "c", "d", "a");
Stream<String> stream = strings.stream();
List<String> result = stream.filter(x -> !x.equals("a")).collect(
Collectors.toList());
System.out.println(result);
stream = strings.stream();
result = stream.distinct().collect(Collectors.toList());
System.out.println(result);
List<Integer> says = Arrays.asList(2000, 1000, 2800, 6666, 8888);
Stream<Integer> stream1 = says.stream();
says = stream1.map(x -> x + x / 100 * 10).collect(Collectors.toList());
System.out.println(says);
stream1 = says.stream();
says = stream1.sorted((x, y) -> y - x).collect(Collectors.toList());
System.out.println(says);
}
}