1 package test; 2 3 import java.util.AbstractCollection; 4 import java.util.ArrayList; 5 import java.util.Iterator; 6 import java.util.List; 7 import java.util.function.Predicate; 8 9 /** 10 * Created by wang.honglin on 2018/7/26. 11 */ 12 public class Test { 13 public static void main(String[] args) { 14 TestList list = new TestList(); 15 list.add("1"); 16 list.add("2"); 17 list.add("3"); 18 list.add("4"); 19 // 删除集合值为3的元素 20 //list.removeIf(Predicate.isEqual("3")); 21 // 删除集合值为3或者4的元素 22 //list.removeIfOr("3", "4"); 23 // 删除满足str1 str 的元素 24 list.removeIfAnd("3", "3"); 25 list.forEach(o -> { 26 System.out.println(o); 27 }); 28 } 29 30 /** 31 * 扩展ArrayList类,用于实现可以满足多个条件的删除 32 */ 33 public static class TestList extends ArrayList { 34 /** 35 * 删除集合指定元素, 36 * @param str1 条件1 37 * @param str 条件2 38 * @return 39 */ 40 public boolean removeIfOr(Object str1, Object str) { 41 Predicate predicate1 = Predicate.isEqual(str); 42 Predicate predicate = Predicate.isEqual(str1); 43 return super.removeIf(predicate.or(predicate1)); 44 } 45 46 /** 47 * 删除指定元素,满足str1和str的元素会被删除 48 * @param str1 条件1 49 * @param str 条件2 50 * @return 51 */ 52 public boolean removeIfAnd(Object str1, Object str) { 53 Predicate predicate1 = Predicate.isEqual(str); 54 Predicate predicate = Predicate.isEqual(str1); 55 return super.removeIf(predicate.and(predicate1)); 56 } 57 } 58 }