Java8
Q z1997
这个作者很懒,什么都没留下…
展开
-
Java8 Stream流 Java实体Bean 指定字段去重
方式1public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Map<Object,Boolean> seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE原创 2022-05-30 17:45:29 · 949 阅读 · 0 评论 -
Collectors.reducing总结
方法签名 一个参数javapublic static <T> Collector<T, ?, Optional<T>> reducing(BinaryOperator<T> op)BinaryOperator op 归集操作函数 输入参数T返回T测试代码我们这里实现一个简单的求和功能,代码如下 @Test public void testReducingOne() { List<Integer> testData = Ar..原创 2021-10-22 13:31:40 · 7207 阅读 · 0 评论 -
CompletableFuture简介与使用
CompletableFuture这个completableFuture是JDK1.8版本新引入的类。下面是这个类。实现了俩接口。本身是个class。这个是Future的实现类。使用completionStage接口去支持完成时触发的函数和操作。一个completetableFuture就代表了一个任务。他能用Future的方法。还能做一些之前说的executorService配合futures做不了的。之前future需要等待isDone为true才能知道任务跑完了。或者就是用get方法调用的时候原创 2021-04-24 18:15:39 · 678 阅读 · 0 评论 -
Java进行复杂的排序(自定义Comparator)
Java进行复杂的排序(自定义Comparator)在完成一个Java List 的比较复杂的排序中, 使用了自定义Comparator这里记录一下使用的过程.public static void main(String[] args) { List<CardVo> vos = new ArrayList<>(); vos.add(CardVo.builder().batchType(TicketBatchTypeEnum.TONG_TICKET).expired原创 2021-03-28 10:46:29 · 589 阅读 · 0 评论 -
Comparator简介与使用
Comparator简介与使用 public static void main(String[] args) { List<String> strs = Stream.of("hello", "world", "hello world").collect(Collectors.toList()); // 按照字母升序排序// Collections.sort(strs);// strs.forEach(System.out原创 2020-12-21 19:24:23 · 385 阅读 · 0 评论 -
JAVA8 Stream 自定义收集器
JDK 提供的Collectors中有大部分常用的, 但是有些特殊情况需要自己自定义收集器, 以下就简单介绍一下自定义收集器的写法import java.util.*;import java.util.function.BiConsumer;import java.util.function.BinaryOperator;import java.util.function.Function;import java.util.function.Supplier;import java.util.s原创 2020-12-19 17:24:17 · 410 阅读 · 1 评论 -
Java8 Stream流简介与使用
Java8 Stream流简介与使用流简介:Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(int原创 2020-11-28 17:23:38 · 214 阅读 · 0 评论 -
Java8 方法引用简单介绍与使用
方法引用方法引用:可以理解为Lambda表达式的语法糖。我们可以把方法引用看作 一个 函数指针方法引用共分为 4钟类名::静态方法名@Data@Builder@NoArgsConstructor@AllArgsConstructorpublic class Student { private String name; private Integer age; private Integer score; public static int comp原创 2020-11-28 15:47:34 · 124 阅读 · 0 评论 -
Java8 Optional的使用及方法介绍
Java8 Optional** Optional主要是为了去除java.lang.NullPointerException (NPE) 空指针异常**Optional:该类是的构造方式是private(私有构造),大体讲解一下几个常用的方法。of方法是一个静态方法,用于创作Optional对象,他的参数必须是一个明确非null的值。 // of: 方法是明确参数不是null Optional<String> optional = Option原创 2020-11-28 12:40:59 · 369 阅读 · 1 评论 -
Java8常用函数式接口整理
首先我们要明白几个概念,函数式接口、Lambda表达式、高阶函数。函数式接口:在Java中函数式接口的定义,就是在一个接口中只有一个抽象方法那么这个接口就是函数式接口。但是不包括默认方法(后续有讲解) 、静态方法和与Object类中的重名方法。Lambda表达式:写法:参数 箭头符号 方法体,(Object param1,Object param2) -> {sout(param1+param2);}; ,param1 -> {sout(param1+param2);}原创 2020-10-25 18:45:54 · 287 阅读 · 1 评论