Stream:
Stream 流
集合侧重数据的存储
stream测试数据的计算
把数据源中的数据进行流式操作
步骤:
1.获取stream
2.流式的中间操作
3.终止行为|操作
注意:
1.stream不会修改原数据源中数据的
2.stream的中间操作每次回返回新的流,流是一次性的流 ,无法重复使用
3.惰性加载,延迟执行
public class StreamDemo01 {
static List<String> ls = List.of("aa","bbb","cccc","ddddd");
public static void main(String[] args) {
//1.获取Stream
//1)Collection->default Stream<E> stream() 返回以此集合为源的顺序 Stream
Stream<String> stream = ls.stream();
//2)static <T> Stream<T> stream(T[] array) 返回以指定数组作为源的顺序Stream 。
Stream<Character> stream2 = Arrays.stream(new Character[]{'a','b','c','d','e'});
//3)static <T> Stream<T> of(T... values) 返回其元素为指定值的顺序有序流。
Stream<Integer> stream3 = Stream.of(1,2,3,4,5);
//中间
//终止操作
stream.forEach(System.out::println);
}
}
//1.获取流
Stream<String> stream = ls.stream();
//2.中间操作
//过滤
stream = stream.filter(s->{
// System.out.println("过滤....");
return s.length()>=3;
});
//截取
stream = stream.limit(4);
//跳过 去重(equals)
stream = stream.skip(2).distinct();
//3.终止操作
stream.forEach(System.out::println);
单例模式:饿汉式,懒汉式
单例模式: 某一个类型只能存在一个实例
饿汉式 : 类加载第一次时构建实例
懒汉式 : 方法调用时候才创建实例(延迟装载)
枚举
静态内部类
步骤:
1.构造器私有化 -->外部无法创建对象,对象由内部自己构建,提供给外部使用
2.私有的静态的该类型的引用
3.公共的静态的访问方式
饿汉式:
不推荐使用,无法实现延迟装载,实例也有可能没有使用浪费内存
线程安全的