操作方法
Lambda表达式: java8引入了一个新的操作符"->",该操作符将表达式拆分为两部分: 左侧:Lambada表示表达式的参数列表 右侧:Lambda表示所需要执行的功能 @Test public void test2() { Consumer<String> consumer = (x) -> System.out.println(x); consumer.accept("我是帅哥"); }
函数式接口 package com.gwolf; @FunctionalInterface public interface MyPredicate<T> { public boolean test(T t); }
方法引用与构造器引用 public void test1() { Consumer<String> con = (x) -> System.out.println(x); Consumer<String> consumer = System.out::println; consumer.accept("我是帅哥"); }
Stream API流式计算 Stream API是java8中处理集合的关键抽象概念,它可以指定您希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API对集合数据进行操作,就类似于使用SQL执行的数据库查询。 package com.gwolf; import com.gwolf.vo.Dept; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Stream; public class TestStreamAPI { @Test public void test1() { //可以通过Collection系列集合提供提供的Stream()或parallelStream List<String> list = new ArrayList<>(); Stream<String> stream = list.stream(); //通过Arrays中的静态方法stream()方法得到数组流 Dept[] depts = new Dept[10]; Stream<Dept> deptStream = Arrays.stream(depts); } }
接口中的默认方法与静态方法 public interface MyFun { default String getName() { return "hello"; } }
新日期API package com.gwolf; import java.time.LocalDate; import java.time.Period; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; public class DateUtils { public static void main(String[] args) { LocalDate today = LocalDate.now(); System.out.println("今天的日期:" + today); //明天的日期 LocalDate tomrrow = today.plus(1, ChronoUnit.DAYS); System.out.println("明天的日期:" + tomrrow); System.out.println("日期" + tomrrow + "是否在" + today +"之后" + tomrrow.isAfter(today)); System.out.println("日期" + tomrrow + "是否在" + today +"之前" + tomrrow.isBefore(today)); } public static LocalDate plus(LocalDate localDate, int between,ChronoUnit chronoUnit) { return localDate.plus(between,chronoUnit); } /** * 格式化日期 * @param localDate * @param pattern * @return */ public static String parseDate(LocalDate localDate,String pattern) { DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern); return localDate.format(dateTimeFormatter); } /** * 比较两个时间相差的月份 * @param one * @param two * @return */ public static Integer between(LocalDate one,LocalDate two) { return Period.between(one,two).getMonths(); } /** * 字符串转化成日期 * @param strDate * @param pattern * @return */ public static LocalDate formatDate(String strDate,String pattern) { DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern); return LocalDate.parse(strDate,dateTimeFormatter); } }