主要针对平时开发中最常用的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 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 activityUuidList1 = Lists.newArrayList(Sets.newHashSet(activityUuidList));
/*允许去除 List 列表中 重复对象以及null对象*/
List 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 zyfList = Lists.newArrayList();
zyfList.add(zyf1);
zyfList.add(zyf2);
zyfList.add(zyf3);
zyfList.add(zyf4);
zyfList.add(zyf5);
zyfList.add(null);
List zyfList1 = Lists.newArrayList(Sets.newHashSet(zyfList));
List 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]
三、