Stream

Stream特性

Stream运行机制

Stream常用API

Stream的创建

public class StreamDemo{
static void gen1(){
String[] args = {"a","b","c","d","e"};
Stream<String> strs1 = Stream.of(strs);
strs.forEach(System.out::println);
for(String str : strs){
System.out.println(str);
}
}
static void gen2(){
List<String> list = Arrays.asList("1","2","3","4","5");
Stream<String> stream = list.stream();
stream.forEach(System.out::println);
}
static void gen3(){
Stream<Integer> generate = Stream->generate(()->{
for(int i = 0; i < 1000; i++){
return i;
}
});
generate.limit(10).forEach(System.out::println);
}
static void gen4(){
Stream.iterate(1, x->x+1);
iterate.limit(10).forEach(System.out.println);
}
static void gen5(){
String str = "abc";
Stream stream = str.chars();
stream.forEach(System.out::println);
}
public static void main(String[] args){
Arrays.asList(1,2,3,4,5).stream().filter((x)->x%2==0).forEach(System.out::println);
Arrays.asList(1,2,3,4,5,6,7,8,9).stream().filter(x->x%2==0).count();
System.out.println(count);
List<Integer> list = Arrays.asList(1,2,3,4,5,6);
Optional <Integer> max = list.stream().max((a,b)->a-b);
}
}
Java自定义注解

注解的作用

元注解

public class MetaAnnotation{
public void test(){
}
}
@MyAnnotation
// target用来声明当前自定义注解适合用于什么地方,方法,变量,包
@Target(ElementType.METHOD, ElementType.TYPE)
// 注解适用于什么环境,源码级别,类级别,还是运行时
@Retention(RetentionPolicy.CLASS)
// 表示该注解是否显示在javadoc中
@Decumented
// 表示该注解是否能够继承
@Inherited
@interface MyAnnotation{
}