guava平时基本常用的基本操作整理

主要针对平时开发中最常用的guava操作做基本的操作总结,并不完善,只整理平时使用较多的地方!

一、基本的数据结构直接的转换使用

 

二、对基本的数据结构进行的简单处理

1.使用 Guava 去除 List 中的重复对象

针对基本的数据类型而不是对象而言,可以直接使用以下两种方法:

方法一:只能去除 List 列表中的重复对象,不去除含有null的元素   

Lists.newArrayList(Sets.newHashSet(list));

方法二:允许去除 List 列表中 重复对象以及null对象

ImmutableSet.copyOf(Iterables.filter(list,Predicates.not(Predicates.isNull()))).asList();

备注:如果List中储存的为对象,则建议重写对应的 equals 和 hashcode 方法, 如下面的例子。

重写User相关代码见:https://github.com/ZYFCodes/zyfboot-javabasic/blob/master/src/main/java/org/zyf/javabasic/common/User.java

基本测试用例如下:

public static void main(String[] args) {
        List<Long> activityUuidList = Lists.newArrayList();
        activityUuidList.add(Long.parseLong("234"));
        activityUuidList.add(Long.parseLong("234"));
        activityUuidList.add(Long.parseLong("345"));
        activityUuidList.add(Long.parseLong("234"));
        activityUuidList.add(Long.parseLong("123"));
        activityUuidList.add(Long.parseLong("654"));
        activityUuidList.add(null);
        activityUuidList.add(null);

        /*只能去除 List 列表中的重复对象,不去除含有null的元素*/
        List<Long> activityUuidList1 = Lists.newArrayList(Sets.newHashSet(activityUuidList));
        /*允许去除 List 列表中 重复对象以及null对象*/
        List<Long> activityUuidList2 = ImmutableSet.copyOf(Iterables.filter(activityUuidList, Predicates.not(Predicates.isNull()))).asList();

        System.out.println(activityUuidList);
        System.out.println(activityUuidList1);
        System.out.println(activityUuidList2);

        User zyf1 = new User("1", "ZYF1", "18");
        User zyf2 = new User("1", "ZYF1", "34");
        User zyf3 = new User("1", "ZYF3", "18");
        User zyf4 = new User("1", "ZYF1", "18");
        User zyf5 = new User("1", "ZYF1", "18");


        List<User> zyfList = Lists.newArrayList();
        zyfList.add(zyf1);
        zyfList.add(zyf2);
        zyfList.add(zyf3);
        zyfList.add(zyf4);
        zyfList.add(zyf5);
        zyfList.add(null);

        List<User> zyfList1 = Lists.newArrayList(Sets.newHashSet(zyfList));
        List<User> zyfList2 = ImmutableSet.copyOf(Iterables.filter(zyfList, Predicates.not(Predicates.isNull()))).asList();

        System.out.println(zyfList);
        System.out.println(zyfList1);
        System.out.println(zyfList2);
    }

对应结果如下:

[234, 234, 345, 234, 123, 654, null, null]
[null, 345, 234, 123, 654]
[234, 345, 123, 654]
[1 ZYF1 18, 1 ZYF1 34, 1 ZYF3 18, 1 ZYF1 18, 1 ZYF1 18, null]
[1 ZYF1 18, null, 1 ZYF3 18, 1 ZYF1 34]
[1 ZYF1 18, 1 ZYF1 34, 1 ZYF3 18]

三、

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页