Lambda表达式: Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 格式: (parameters) -> expression 或 (parameters) ->{ statements; } 主要作用:用于替代匿名内部类,即可以表示一个接口的实现类。 条件:Lambda表达式要表示的接口,必须只有一个要实现的方法 表达式说明: parameters:传入的参数 expression:可以看成是接口中方法的实现,可以使用parameters中的参数 如: // 1.1使用匿名内部类 new Thread(new Runnable() { @Override public void run() { System.out.println("Hello world !"); } }).start(); // 1.2使用 lambda expression new Thread(() -> System.out.println("Hello world !")).start(); 方法引用: 方法引用是指通过方法的名字来指向一个方法。通过使用一对冒号实现:“::” 默认方法: Java 8 新增了接口的默认方法。简单说,默认方法就是接口可以有实现方法,而且不需要实现类去实现其方法。 我们只需在方法名前面加个default关键字即可实现默认方法。 Java 8 Stream Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation), 或者大批量数据操作 (bulk data operation)。 1)构造流: // 1. Individual values Stream stream = Stream.of("a", "b", "c"); // 2. Arrays String [] strArray = new String[] {"a", "b", "c"}; stream = Stream.of(strArray); stream = Arrays.stream(strArray); // 3. Collections List<String> list = Arrays.asList(strArray); stream = list.stream(); 2)Stream方法: foreach() 用于遍历集合中每一个元素,并可以对每一个元素进行操作 list.stream().forEach(s-> System.out.println(s)); filter() 留下满足条件的元素,过滤掉不满足条件的元素 list.stream().filter(s -> !s.isEmpty()) //过滤掉为空的元素 map() 将流中的每一个元素映射为指定的元素 list.stream().map(n -> n * n). //将集合中所有的元素转换为大写 limit() 限定从流中获取元素的个数 sorted() 排序