java8
文章平均质量分 51
liu1002880404
这个作者很懒,什么都没留下…
展开
-
java8对集合排序,多字段排序(升序和降序)(空值排到最后)
【代码】java8对集合排序,多字段排序(升序和降序)(空值排到最后)原创 2024-04-26 10:18:14 · 1313 阅读 · 0 评论 -
使用java8 Lambda对List对象的常用操作
【代码】使用java8 Lambda对List对象的常用操作。原创 2023-03-31 14:07:02 · 889 阅读 · 0 评论 -
Java8 Stream根据某字段分组统计
【代码】Java8 Stream根据某字段分组、多字段求和。原创 2023-03-27 09:28:39 · 2358 阅读 · 0 评论 -
Java8 对list集合中的bigdecimal进行分组求和,均值,最大值,最小值
新建接口ToBigDecimalFunction@FunctionalInterfacepublic interface ToBigDecimalFunction<T> { BigDecimal applyAsBigDecimal(T value);}新建工具类CollectorsUtilpublic class CollectorsUtil { static final Set<Collector.Characteristics> CH_NOID =原创 2022-05-19 20:49:33 · 14049 阅读 · 0 评论 -
java8 list转map 及Duplicate key
@SpringBootTest(classes = DemoApplication.class)@Slf4jpublic class ListToMapTest {@Testpublic void test() { List<Student> list = new ArrayList<>(); list.add(Student.builder().id(1).code(2).name("aa").build()); list.add(Student.b.原创 2022-04-21 15:41:17 · 670 阅读 · 0 评论 -
java Stream流常用方法
文章目录过滤分组List map互转list转mapmap转list求和/极值求最大/最小值的对象过滤//根据指定sn,过滤出符合的数据: List<Map<String, Object>> deviceDataListList<Map<String, Object>> tempDeviceDataList = deviceDataList.stream().filter(map -> map.get("sn").toString().equals原创 2022-03-24 11:31:38 · 1366 阅读 · 0 评论 -
Java中List集合对象去重及按属性去重
集合元素整体去重以List中的String类型以集合元素对象为单位整体去重为例。如果List放入的是Object对象,需要你去实现对象的equals和hashCode方法,去重的代码实现方法和List去重是一样的。先把List数据放入Set,因为Set数据结构本身具有去重的功能,所以再将SET转为List之后就是去重之后的结果。这种方法在去重之后会改变原有的List元素顺序,因为HashSet本身是无序的,而TreeSet排序也不是List种元素的原有顺序。@Testvoid testRemove1原创 2022-03-02 09:48:23 · 2504 阅读 · 0 评论 -
集合常见操作-遍历
集合常见操作遍历遍历mappublic class LambdaMap { private Map<String, Object> map = new HashMap<>(); @Before public void initData() { map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3");原创 2021-11-11 10:00:16 · 148 阅读 · 0 评论 -
java8 使用stream实现两个list集合合并成一个list集合及List切成多个list
public class ListDateSpit { private List<String> listData = new ArrayList<>(); @Before public void testInitData() { for (int i = 0; i < 1000; i++) { listData.add(String.format("数据ID-%s", i + 1)); ..原创 2021-11-05 08:12:24 · 15329 阅读 · 0 评论 -
Java8 forEach 使用
forEach and Map普通方式遍历 Map Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); items.put("D", 40); items.put("E", 50); items.put("F", 60); for (Map.Entry<String, Integer> entr原创 2021-11-04 08:40:32 · 1127 阅读 · 0 评论 -
Java8两个集合(List)取交集、并集、差集、去重并集
public class CollectionsTest { public static void main(String[] args) { List<String> list1 = new ArrayList<>(); list1.add("1"); list1.add("2"); list1.add("3"); list1.add("4"); list1.add("5");原创 2021-11-04 08:22:30 · 2386 阅读 · 0 评论 -
java8 stream filter 简单使用
java8 stream filter 简单使用如下代码: public static void main(String[] args) { // 存储0-9的列表 List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } System.out.prin原创 2021-11-04 08:15:05 · 3023 阅读 · 0 评论 -
Collectors.toMap应用
文章目录Collectors.toMap介绍深入Collectors.toMap常见的java.lang.IllegalStateException: Duplicate key 问题处理Collectors.toMap介绍在真实的业务场景中有很多集合转map的操作,例如@Datapublic class House { private Integer id; //id private Integer ownerid; //家主编号 private Str原创 2021-09-14 08:17:25 · 41075 阅读 · 2 评论 -
实现递归树形结构
实现递归树形结构模拟表中数据实体类@ApiModel(value = "树结构信息")@Data@AllArgsConstructorpublic class TreeEntity { @ApiModelProperty("唯一id") private Integer id; @ApiModelProperty("名称") private String name; @ApiModelProperty("父类id") private In原创 2021-07-10 12:57:05 · 179 阅读 · 0 评论 -
Lambda Stream 常用详细实例代码汇总
流式操作应用实例import lombok.*;import lombok.extern.slf4j.Slf4j;import java.time.LocalDate;import java.util.*;import java.util.concurrent.CopyOnWriteArrayList;import java.util.stream.Collectors;@Slf4jpublic class StreamTest2 { public static List<原创 2021-07-09 15:37:46 · 186 阅读 · 0 评论 -
对象类型和Map相互转化 对象集合和Map集合互相转化
对象类型和Map相互转化 对象集合和Map集合互相转化import com.google.common.base.Function;import com.google.common.collect.Lists;import lombok.*;import lombok.extern.slf4j.Slf4j;import org.apache.commons.collections4.CollectionUtils;import org.springframework.beans.BeanUt原创 2021-07-09 13:49:12 · 912 阅读 · 0 评论 -
一个对象的集合转化成另一个对象的集合 PO集合转换为VO集合
一个对象的集合转化成另一个对象的集合 PO集合转换为VO集合准备数据import com.google.common.base.Function;import com.google.common.collect.Lists;import lombok.*;import lombok.extern.slf4j.Slf4j;import java.util.*;import java.util.concurrent.ConcurrentMap;import java.util.stream.原创 2021-07-08 17:40:54 · 1594 阅读 · 0 评论 -
java8流式编程
java8流式编程Stream API介绍流式编程定义对于java来说,我们最常用的面向对象编程属于命令式编程(Imperative Programming)这种编程范式。常见的编程范式还有逻辑式编程(Logic Programming),函数式编程(Functional Programming)。函数式编程java8也导入了,结合 Lambda 表达式,对于函数式接口的实现和使用变得灵活和简单了。流式编程是一个受到 函数式编程 和 多核时代影响而产生的东西。其实,流式编程就是基于JDK8 的Str原创 2021-07-08 14:21:17 · 894 阅读 · 2 评论 -
java8 函数式编程
java8 函数式编程文章目录java8 函数式编程java8 函数式接口简介定义函数式接口在java8中的函数式接口JDK 1.8之前已有的函数式接口:函数式接口用法Consumer接口函数定义用法示例Supplier接口定义示例应用Function接口以及同类型的特化的接口定义示例Funtion这个接口的“扩展”的原始类型特化的一些函数接口Predicate接口定义示例函数式编程之lambda表达式lambda表达式和匿名类的区别1. this指向不同2. 底层实现不同编译3. lambda表达式只能原创 2021-07-07 12:19:52 · 202 阅读 · 3 评论 -
Stream如何提高遍历集合效率
在 Java8 中,Collection 新增了两个流方法,分别是 Stream() 和 parallelStream()。什么是 Stream?在 Java8 之前,我们通常是通过 for 循环或者 Iterator 迭代来重新排序合并数据,又或者通过重新定义 Collections.sorts 的 Comparator 方法来实现,这两种方式对于大数据量系统来说,效率并不是很理想。Java8 中添加了一个新的接口类 Stream,他和我们之前接触的字节流概念不太一样,Java8 集合中的 S原创 2021-01-04 10:10:46 · 672 阅读 · 0 评论 -
Local variable flag defined in an enclosing scope must be final or effectively final
Java8在 lambda 表达式中使用局部变量会提示:Local variable flag defined in an enclosing scope must be final or effectively final这是因为你使用的局部变量在初始化后,又对这个变量进行了赋值。赋值后会认为这个变量不是final了,所以报错,针对这个问题可以有以下几种解决办法。使用Final修饰符修饰的变量的特点:该变量会变成常亮,值不能被改变,使用Final修饰符修饰的对象的特点:该对象的引用地址不能改.原创 2020-12-30 12:57:53 · 6548 阅读 · 2 评论 -
List<Map> 获取key重复数据及过滤对应key重复数据
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import java.util.function.Function;import java.util.function.Predicate;public class StreamEx{ //过滤重复数据...原创 2020-12-28 18:21:20 · 3189 阅读 · 0 评论 -
Java8 Optional 解决空指针异常
前言Java8 由Oracle在2014年发布,是继Java5之后最具革命性的版本。Java8吸收其他语言的精髓带来了函数式编程,lambda表达式,Stream流等一系列新特性,学会了这些新特性,可以让你实现高效编码优雅编码。1. 不受待见的空指针异常有个小故事:null引用最早是由英国科学家Tony Hoare提出的,多年后Hoare为自己的这个想法感到后悔莫及,并认为这是"价值百万的重大失误"。可见空指针是多么不受待见。NullPointerException是Java开发中.原创 2020-12-18 13:31:20 · 598 阅读 · 0 评论 -
java8 List<Map> 操作 以某个key合并两个List<Map>
public static List<HashMap<String, Object>> merge(ArrayList<HashMap<String, Object>> list1,ArrayList<HashMap<String, Object>> list2,String key) { //List<HashMap<String, Object>> list1 = new Arra...原创 2020-09-18 16:18:30 · 2555 阅读 · 0 评论 -
Java8 中的 Streams流式操作详解
Java 8 中的 Streams API 详解Streams 的背景以及 Java 8 中的使用详解为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对.原创 2020-09-15 19:43:06 · 620 阅读 · 0 评论 -
java8函数式接口概念及lambda表达式
主要内容自定义函数式接口函数式编程常用函数式接口教学目标能够使用@FunctionalInterface注解能够自定义无参无返回函数式接口能够自定义有参有返回函数式接口能够理解Lambda延迟执行的特点能够使用Lambda作为方法的参数能够使用Lambda作为方法的返回值能够使用Supplier函数式接口能够使用Consumer函数式接口能够使用Function函数式接口能够使用Predicate函数式接口 第一章 函数式接口1.1 概念 函数式接口...原创 2020-08-08 16:12:57 · 263 阅读 · 0 评论 -
线程安全的日期API
Java 8 推出了全新的日期时间API8之前Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。类的名称 描述 Instant 时间戳 Duration 持续时间、时间差 LocalDate 只包含日期,比如:2020-01-01 LocalTime原创 2020-08-07 09:52:27 · 416 阅读 · 0 评论