1、代码
package com.example.demo13;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import java.util.List;
public class Test01 {
public static void main(String[] args) {
List<String> list = Lists.newArrayList();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
List<String> list1 = Lists.newArrayList();
list1.add("two");
list1.add("three");
List<String> list2 = Lists.newArrayList();
list2.add("one");
list2.add("two");
list2.add("three");
list2.add("four");
List<String> list3 = Lists.newArrayList();
list3.add("one");
list3.add("two");
list3.add("three");
list3.add("four");
//boolean removeAll(Iterable removeFrom,Collection elementsToRemove)
System.out.println(Iterables.removeAll(list, list1));
System.out.println(list.toString());
System.out.println("---------------------");
//boolean retainAll(Iterable removeFrom,Collection elementsToRetain)
System.out.println(Iterables.retainAll(list2, list1));
System.out.println(list2.toString());
System.out.println("---------------------");
//boolean removeIf(Iterable removeFrom,Predicate predicate)
Predicate<String> predicate = s -> s.length() == 3;
System.out.println(Iterables.removeIf(list3, predicate));
System.out.println(list3.toString());
}
}
2、结果
true
[one, four]
---------------------
true
[two, three]
---------------------
true
[three, four]
2、解析
Iterables 一共三个方法
(1)removeAll
从list里剔除list1里的元素;
(2) retainAll
取交集
(3)removeIf
利用predicate过滤