首页
学习
活动
专区
圈层
工具
发布

使用 @ExtensionMethod 注解简化从 Map<String, Object> 中获取 Integer 和 Long 类型的值

使用 @ExtensionMethod 注解简化从 MapString, Object> 中获取 Integer 和 Long 类型的值 在 Java 编程中,我们经常需要从 MapString...本文将介绍如何使用 Lombok 的 @ExtensionMethod 注解来简化这一过程,并提供一个实用的工具类来帮助我们处理从 MapString, Object> 中获取 Integer...ObjectConverter 中的方法来简化从 MapString, Object> 中获取 Integer 和 Long 类型的值: package com.zibo.common.util;...(map.get(key)).orElse(null); } /** * 从 MapString, Object> 中获取 Long 类型的值 * *...在本文中,我们创建了一个实用的工具类 MyMapUtils,并使用 @ExtensionMethod 将其方法作为 MapString, Object> 的扩展方法使用,使得从 Map 中获取特定类型的值变得更加简单和直观

2.3K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从源码上聊聊Redis-String、List的结构实现

    具体的解决方案使用Map,感兴趣的话可以看下我之前的文章:Redis分布式锁深入分析 – Karos (wzl1.top) 究其身 下面是RedisObject数据结构 图片 图片 这里LRU和LFU是啥...,所以使用 SDS 既不需要手动修改 SDS 的空间大小,也不会出现前面所说的缓冲区溢出的问题。...head 和表尾节点 tail,所以获取链表的表头节点和表尾节点的时间复杂度只需O(1); list 结构因为提供了链表节点数量 len,所以获取链表中的节点数量的时间复杂度只需O(1); listNode...,此时就需要对压缩列表的空间重分配操作,并将 e1 节点的 prevlen 属性从原来的 1 字节大小扩展为 5 字节大小。...图片 e1 原本的长度在 250~253 之间,因为刚才的扩展空间,此时 e1 的长度就大于等于 254 了,因此原本 e2 保存 e1 的 prevlen 属性也必须从 1 字节扩展至 5 字节大小。

    1.1K171

    使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map「建议收藏」

    list去重,根据对象某个属性、某几个属性去重 去除List中重复的String List unique = list.stream().distinct().collect(Collectors.toList...()); 去除List中重复的对象 // Person 对象 public class Person { private String id; private String...转Map 从一个Person对象的List集合,取出id和name组成一个map集合 MapString, String> collect = list.stream().collect(Collectors.toMap...(p -> p.getId(), p -> p.getName())); 从 List 中取出某个属性的组成 list 集合 //1.提取出list对象中的一个属性 ListString> stIdList1...= stuList.stream().map(Person::getId).collect(Collectors.toList()); //2.提取出list对象中的一个属性并去重 ListString

    4.6K10

    CompletableFuture 让你的代码免受阻塞之苦

    在这方面的改进 Java8并行流 以上我们用的是Java8之前提供的方法来实现,接下来我们来看下Java8中提供的并行流来实习我们这个例子效果怎样呢?...load() { this.delay(); return "标签信息"; } } 我们继续使用Java8提供的并行流来实现,看下运行的结果是否理想 @Test...CompletableFuture 的使用过程需要处理的事情很多,不太简洁,你会觉得看起来很麻烦;但是这只是表象,Java8其实对这个过程进行了封装,提供了很多简洁的操作方式;接下来我们看下如何改造上面的代码...为了解决这个问题,我们必须深入了解下并行流和 CompletableFuture 的实现原理,它们底层使用的线程池的大小都是CPU的核数 Runtime.getRuntime().availableProcessors...CompletableFuture 让你的代码免受阻塞之苦 这下执行的结果比较满意了,1秒多点;理论上来说这个结果可以一直持续,直到达到线程池的大小50 并行流和 CompletableFuture 两者该如何选择

    89320

    【C++】list的使用和基本迭代器框架的实现 & vs和g++下string结构的说明

    list的底层是由带头双向循环链表实现的,与vector和string不同的是,list的遍历要通过迭代器来实现,就算我们不知道list迭代器的底层实现机制,但并不影响我们使用迭代器,这就是迭代器对于所有容器带来的好处...迭代器从功能上来说,可以分为三类:只能++的单向迭代器(单链表、哈希表),既能++也能 - - 的双向迭代器(list带头双向循环链表),既能++也能 - - 还能±某个具体的数的随机迭代器(string...,当字符长度大于等于16时,从堆上开辟空间,不在使用_buf数组进行存放。...vs对于string的设计思想主要还是用空间换时间,增大string对象的大小,如果数据量比较小,那就用提前开好的_Buf数组进行存储,节省自己动态开辟空间的消耗。...2.但是显示出来的string对象大小是8字节,因为默认使用的环境是64位,指针大小为8字节。 x86_64是64位平台,指针大小为8字节 3.

    65610

    强大的 Stream 函数式编程

    以下实例我们使用 parallelStream 来输出空字符串的数量: // 获取空字符串的数量[parallelStream 为 Collection 接口的一个默认方法] Arrays.asList...因此,在 Stream 上通过并行获取的性能,最好是通过 ArrayList、HashMap、HashSet 和 CouncurrentHashMap 实例,数组,int 范围和 long 范围等。...Java8 引入了 3 个原始类型特化流接口来解决这个问题:IntStream、DoubleStream、LongStream,分别将流中的元素特化为 int、long、double,从而避免了暗含的装箱成本...因此,map 返回的流实际上是 StreamString[]>类型的。 ?...Java 8 中的 Streams API 详解 [2]. java8 快速实现 List 转 map 、分组、过滤等操作 source:https://morning-pro.github.io/archives

    3.1K70

    使用 Stream API 高逼格 优化 Java 代码!

    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,流如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...,返回一个MapList>的结果 这要是放在jdk8之前肯定会头皮发麻 Java8以前的实现方式 private static MapList> beforeJdk8...如下面即将介绍的count、collect等 流使用 流的使用将分为终端操作和中间操作进行介绍 中间操作 filter筛选 List integerList = Arrays.asList...>=0,否则将会抛出异常 map流映射 所谓流映射就是将接受的元素映射成另外一个元素 ListString> stringList = Arrays.asList("Java 8", "Lambdas...该例子完成中String -> Integer的映射,之前上面的例子通过map方法完成了Dish->String的映射 flatMap流转换 将一个流中的每个值都转换为另一个流 ListString>

    2K10

    使用 Stream API 高逼格 优化 Java 代码!

    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,流如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...,返回一个MapList>的结果 这要是放在jdk8之前肯定会头皮发麻 Java8以前的实现方式 private static MapList> beforeJdk8...如下面即将介绍的count、collect等 流使用 流的使用将分为终端操作和中间操作进行介绍 中间操作 filter筛选  List integerList = Arrays.asList...>=0,否则将会抛出异常 map流映射 所谓流映射就是将接受的元素映射成另外一个元素 ListString> stringList = Arrays.asList("Java 8", "Lambdas...该例子完成中String -> Integer的映射,之前上面的例子通过map方法完成了Dish->String的映射 flatMap流转换 将一个流中的每个值都转换为另一个流 ListString>

    2.2K30

    使用 Stream API 高逼格 优化 Java 代码!

    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,流如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。...skip的参数值必须>=0,否则将会抛出异常 map流映射 所谓流映射就是将接受的元素映射成另外一个元素 ListString> stringList = Arrays.asList("Java 8"...map方法可以完成映射,该例子完成中String -> Integer的映射,之前上面的例子通过map方法完成了Dish->String的映射 flatMap流转换 将一个流中的每个值都转换为另一个流...map(w -> w.split(" "))的返回值为 StreamString[]>,我们想获取 StreamString>,可以通过flatMap方法完成Stream ->Stream 的转换

    1.8K20

    巧用 Java 8 的 Stream 来优化代码

    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,流如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...,新需求如下: “对数据库查询到的菜肴根据菜肴种类进行分类,返回一个MapList>的结果 ” 这要是放在jdk8之前肯定会头皮发麻 Java8以前的实现方式 private...流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。...,skip的参数值必须>=0,否则将会抛出异常 map流映射 所谓流映射就是将接受的元素映射成另外一个元素 ListString> stringList = Arrays.asList("Java 8...通过map方法可以完成映射,该例子完成中String -> Integer的映射,之前上面的例子通过map方法完成了Dish->String的映射 flatMap流转换 将一个流中的每个值都转换为另一个流

    36910

    使用 Stream API 高逼格 优化 Java 代码

    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,流如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...getName ()); } return lowCaloricDishesName ; } Java8之后的实现方式 private List < String afterJava8 (...,返回一个MapList>的结果 这要是放在jdk8之前肯定会头皮发麻 Java8以前的实现方式 private static Map < Type , List < Dish beforeJdk8...什么是流 流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。...如下面即将介绍的count、collect等 流使用 流的使用将分为终端操作和中间操作进行介绍 中间操作 filter筛选 List < Integer integerList Arrays

    23910

    使用 Stream API 高逼格 优化 Java 代码!

    作者 | 何甜甜在吗 来源 | https://juejin.cn/post/6844903945005957127 使用Stream API优化代码 Java8的新特性主要是Lambda表达式和流,...>的结果 这要是放在jdk8之前肯定会头皮发麻 Java8以前的实现方式 private static MapList> beforeJdk8(List...什么是流 流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。...>=0,否则将会抛出异常 map流映射 所谓流映射就是将接受的元素映射成另外一个元素 ListString> stringList = Arrays.asList("Java 8", "Lambdas...该例子完成中String -> Integer的映射,之前上面的例子通过map方法完成了Dish->String的映射 flatMap流转换 将一个流中的每个值都转换为另一个流 ListString>

    1K30

    Stream API 学会这样用,简化代码真牛批!

    A作者:何甜甜在吗 www.juejin.im/post/5d8226d4e51d453c135c5b9a Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,...Type type; // getter and setter } Java8以前的实现方式 private ListString> beforeJava7(List dishList...高高兴兴写完需求这时候又有新需求了,新需求如下: 对数据库查询到的菜肴根据菜肴种类进行分类,返回一个MapList>的结果 这要是放在jdk8之前肯定会头皮发麻 Java8以前的实现方式...>=0,否则将会抛出异常 map流映射 所谓流映射就是将接受的元素映射成另外一个元素 ListString> stringList = Arrays.asList("Java 8", "Lambdas...该例子完成中String -> Integer的映射,之前上面的例子通过map方法完成了Dish->String的映射 flatMap流转换 将一个流中的每个值都转换为另一个流 ListString>

    1.5K11
    领券