java8除了lambda表达式之外还对时间和数组这两块常用API做想应调整,
Stream 有几个常用函数:
store 排序 (a,b)-> a.compareTo(b) 排出来的结果是正序,从小到大 如果(a,b)->b.compareTo(a) 排出来的结果是从大到小
filter 拦截,过滤.根据条件过滤
forEeach 迭代每个元素
map 变更或者替换
limit 长度或者符合数量的限制
skip 跳到某个开始点,skip和limit组合可以制造分页的效果
sum ,count是常规聚合参数
distinct 去除重复数据,这里的去重比较是两个对象是否相等 object.equal(object).不能实现根据某个字段属性进行去重.当然单纯根据属性去重也不符合正常逻辑
ps:这些组合所需循环是一次的,很高效
java8中日期时间的API
1 //java8 时间API的更新 2 Clock clock=Clock.systemUTC(); 3 System.out.println(clock.millis()); 4 //时间线 Instant 5 Instant instant =Instant.now(); 6 Thread.sleep(1000); 7 Instant end = Instant.now(); 8 //时间间隔 duration 9 Duration duration=Duration.between(instant, end); 10 System.out.println("this time :"+duration.toMillis()); 11 //本地日期 没有时分秒的 12 LocalDate localDate= LocalDate.now(); //TemporalAjusters 时间运算 13 LocalDate localDate1= localDate.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.FRIDAY)); 14 System.out.println(localDate1); 15 //自定义日期矫正器 利用plus*方法可以很方便对时间进行运行 16 17 TemporalAdjuster Next_WorkDay = w -> {//自定义校正器 18 LocalDate resultDate = (LocalDate) w; 19 do { 20 resultDate = resultDate.plusMonths(1).plusDays(-1); 21 } while (resultDate.getDayOfWeek().getValue() >= 6); 22 return resultDate; 23 }; 24 25 LocalDate localDate2 =localDate1.with(Next_WorkDay); 26 System.out.println("下个月的时间"+localDate2); 27 //时间格式,关键是本地时间!!用有时分秒的 28 LocalDateTime localDateTime = LocalDateTime.now(); 29 System.out.println("time type:"+DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format( 30 localDateTime));// 语言相关格式 时间格式转换也封装比较好了 31 32 System.out.println("time type:"+DateTimeFormatter.ofPattern("yyyy/mm/dd hh").format( 33 localDateTime));
时间: 2024-10-13 23:28:17