`

Guava学习笔记

    博客分类:
  • java
 
阅读更多

1、pom.xml文件  

<dependency>
   <groupId>com.google.guava</groupId>
   <artifactId>guava</artifactId>
   <version>18.0</version>
</dependency>

 

2、不可变List

 传统实现: 

List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
List<String> readList = Collections.unmodifiableList(list);

 Guava实现:

List<String> immutableList = ImmutableList.of("a","b","c");

3、函数式编程之过滤器

List<String> list = Lists.newArrayList("moom", "son", "dad", "java", "refer");
//找出回文
Collection<String> palindromeList = Collections2.filter(list, new Predicate<String>() {
            @Override
            public boolean apply(String input) {
                return new StringBuffer(input).reverse().toString().equals(input);
            }
        });

 4、函数式编程之类型转换

//长整型转换成字符串
HashSet<Long> timeSet = Sets.newHashSet();
        timeSet.add(100000000000L);
        timeSet.add(999999999999999L);
        timeSet.add(20000000000L);

Collection<String> timeStrCol = Collections2.transform(timeSet, new Function<Long, String>() {
            @Override
            public String apply(Long input) {
                return new SimpleDateFormat("yyyy-MM-dd").format(input);
            }
        });

 5、函数式编程之组合式

        List<String> list = Lists.newArrayList("java", "china", "happiness");

	//字符串大于5时截断
        Function<String, String> f1 = new Function<String, String>() {
            @Override
            public String apply(String s) {
                return s.length() > 5 ? s.substring(0, 5) : s;
            }
        };
//字符转换成大写
Function<String, String> f2 = new Function<String, String>() {
            @Override
            public String apply(String s) {
                return s.toUpperCase();
            }
        };

        Function<String, String> compose = Functions.compose(f1, f2);
        Collection<String> transform = Collections2.transform(list, compose);

 6、集合操作:交集、差集、并集

        Set<String> firstSet = Sets.newHashSet("a", "b", "c", "d");
        Set<String> secondSet = Sets.newHashSet("c", "d", "e", "f");
        //交集,返回[c,d]
        Sets.SetView<String> intersection = Sets.intersection(firstSet, secondSet);
        //差集,返回[a,b]
        Sets.SetView<String> difference = Sets.difference(firstSet, secondSet);
        //并集,返回[a,b,c,d,e,f]
        Sets.SetView<String> union = Sets.union(firstSet, secondSet);

 

分享到:
评论

相关推荐

    guava学习笔记

    本学习笔记将重点介绍Guava中的几个核心工具类:Joiner、Splitter、Preconditions。 1. Joiner类与Splitter类 Joiner类的主要功能是将集合中的元素拼接成一个字符串。通过指定分隔符,可以灵活地将集合或Map中的...

    notes-learning-guava:guava学习笔记

    Guava学习笔记笔记的大部分中文翻译内容来源于以下译者: 沉义扬,罗立树,何一昕,武祖校对:方腾飞感谢给我们带来的这一系列好文章。引言Guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如:集合...

    guava代码展示

    Guava的学习笔记.docx文件可能包含了对以上概念的详细解释和示例代码,而未命名的压缩包子文件可能是实际的代码示例或者更深入的案例研究。通过阅读这些材料,你可以深入了解Guava库的用法,并将其应用于你的项目中...

    java校招学习笔记

    "java校招学习笔记"显然是针对应届毕业生或求职者准备的,旨在帮助他们掌握Java的基础知识和校招面试中常见的技术问题。这份笔记可能包含了从基础概念到进阶主题的全面概述,以提高求职者的竞争力。 首先,Java的...

    【高分项目】基于Guava改造Chengfeng【源码+论文+学习笔记+操作手册].zip

    【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或...

    Guava-Event-Bus:Guava的EventBus源码学习

    Guava-Event-Bus 学习笔记 Guava的EventBus源码学习,基于Guava的18.0版本 分析者: ###1. 背景简介 EventBus是google的一个Java工具包其中的一个工具类,类似的有多个版本其中包括移植到Android端的 和改良的,功能...

    若依RuoYi框架剖析笔记,该笔记是在学习江南一点雨所录课程再结合自己的理解所写

    6、**限流**:在高并发场景下,限流策略可以保护系统稳定,RuoYi可能利用如Guava RateLimiter或Spring Cloud Gateway等工具实现。 7、**幂等性处理**:防止表单重复提交是幂等性的一个应用场景,通过令牌机制或唯一...

    996视频学习笔记-20211115.docx

    Java 8 引入了许多创新特性,其中最引人注目的包括Lambda表达式、Stream API、Try-with-resource语句以及对现有库如Guava的改进。下面将详细介绍这些内容。 **Lambda表达式** Lambda表达式是Java 8中的一个关键...

    SSM实战项目——Java高并发秒杀API,详细流程+学习笔记

    这可以通过如Guava库的RateLimiter或Spring Cloud Gateway的限流插件实现。 2. **分布式锁**:在减库存操作时,使用分布式锁确保同一时刻只有一个请求能够执行,避免并发问题。可以使用Redis的setnx命令或者...

    Java Concurrency In Practice Learning Note

    标签中提到的“源码”和“工具”,暗示这份学习笔记可能涉及到Guava库的使用,Guava是Google提供的一款广泛用于Java开发的开源库,特别在并发处理和缓存管理方面有着强大的功能。 在提供的压缩包文件中,我们有五份...

    Java-notes:Java 知识梳理和学习笔记,计算机网络,数据结构,设计模式等

    Java 的学习笔记和整理的知识点,包含Java语言基础、Java服务端方向的框架、设计模式、计算机网络、算法、Java 虚拟机和数据库等多个方面的内容。想了解前端的内容参考,Android相关的内容参考。 目录结构 语言基础...

    java学习路线(鱼皮)

    在准备阶段,学习者需要准备好在线编译工具、记笔记软件、Markdown语法编写等基本技能,以便更好地学习编程。在Java入门阶段,学习者需要掌握Java编程基础、环境搭建、IDEA开发工具、新建项目、运行调试、界面配置、...

    java笔记fdsfdsfdsdf

    【标题】:“Java笔记fdsfdsfdsdf”实际上可能是指一份关于Java编程语言的学习笔记,其中“fdsfdsfdsdf”可能是由于输入错误或者是个无意义的占位符。在这个标题下,我们可以推测笔记内容可能涵盖了Java的基础到进阶...

    《IT学习资料2》-Java学习过程中笔记的配套代码.zip

    6. **笔记与教学材料**(notes):这里可能是作者在学习过程中整理的笔记,可能涵盖了各个知识点的解析、例子和问题解答,是很好的学习参考资料。 7. **Spring Batch**:这是一个强大的批处理框架,用于执行大规模...

    gradle笔记.docx

    《Gradle笔记——Java开发者的进阶指南》 Gradle,作为一款强大的构建工具,以其灵活性和高效性深受开发者喜爱,尤其在Java开发领域。它借鉴了Maven的优点,同时弥补了Maven的一些不足,使得项目构建过程更加简单且...

    java网站建设基础源码笔记类型.rar

    最后,笔记可能涵盖了其他工具类和框架的使用,例如Spring框架用于依赖注入和AOP(面向切面编程),MyBatis简化SQL操作,还有可能涉及Apache Commons或Google Guava等实用工具库,它们提供了许多方便的函数和数据...

    阿里巴巴架构师ssm课程笔记.pdf

    同时,后端与前端的交互过程中,JWT用于身份验证,Guava提供了额外的工具类和集合类,JMeter5.X用于性能测试,确保系统的稳定性和性能。 在部署环节,文档提到了使用CentOS7作为服务器操作系统,Nginx作为反向代理...

    leetcode中国-repos-plan.github.io:回购计划.github.io

    它旨在帮助开发者通过Markdown格式整理和分享他们的学习笔记,同时也涵盖了其他技术领域如Vue.js、Node.js、Android学习以及Guava库的常用解析。 【描述】该项目可能是正在进行中的工作,因为提到了"可能未完结",...

    高级java笔试题-itresource:程序开发技术资源集合

    heavyz的Tomcat学习笔记(包括启动流程分析、启动脚本分析) ] () [ java8 新特性讲解系列文章 ] () [ Java 从Jar文件中动态加载类 ] () [ Java并发源码分析 - ThreadPoolExecutor ] () [ java ClassLoader 基本原理 ]...

Global site tag (gtag.js) - Google Analytics