返回

Java两大工具库:Commons和Guava(3)

发布时间:2023-02-02 00:53:05 294
# java# java# apache# 技术# 工具

您好,我是湘王,这是我的51CTO博客。值此新春佳节,我给您拜年啦~祝您在新的一年中所求皆所愿,所行皆坦途,展宏“兔”,有钱“兔”,多喜乐,常安宁!

 

 

虽然Apache Commons提供了专门的Commons-Collections来封装集合操作,但Google Guava更为强大,并且已经是事实上的集合操作扩展类了。这一点从mvnrepository.com上的引用数据(截止2023-01-27)就可以看出来:

guava                           33,492 usages

commons-collections4     3,905 usages

commons-collections       6,355 usages

当然,也可以混用commons-collections4和guava。

引入依赖:

<dependency>

    <groupId>com.google.guava</groupId>

    <artifactId>guava</artifactId>

    <version>30.0-jre</version>

</dependency>

Guava和Commons-Collections最大的不同应该是在创建集合这一块了:

Java两大工具库:Commons和Guava(3)_google guave

 

Guava扩展了集合的「类型」,它可以这么做:

Java两大工具库:Commons和Guava(3)_java_02

 

Guava也可以很方便地将集合转换成String:

Java两大工具库:Commons和Guava(3)_apache commons_03

 

Java两大工具库:Commons和Guava(3)_google guave_04

 

Guava用于过滤集合元素,操作起来也不麻烦:

Java两大工具库:Commons和Guava(3)_java_05

 

Map集合的交、并、差:

Java两大工具库:Commons和Guava(3)_java_06

 

Set集合的交、并、差:

Java两大工具库:Commons和Guava(3)_apache commons_07

 

最后,Guava基于Comparator实现了排序器Ordering,它可以用来为构建复杂的比较器,以完成集合排序的功能。先创建用户实体类:

/**
 * 用户实体类
 *
 * @author 湘王
 */
public class User {    private String name;    private Integer age;    public User() {    }    public User(String name, int age) {        this.name = name;        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    @Override    public String toString() {        return name;    }}

 

然后再基于Ordering排序:

Java两大工具库:Commons和Guava(3)_java_08

 

 


 

节日期间,您仍然可以随时咨询技术、产品、运营和管理相关问题,请关注后留言。欢迎骚扰,不胜荣幸~再次祝您兔年吉祥,万事胜意!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线