集合判断:
例1:判断集合是否为空:
1.1:CollectionUtils.isEmpty(null):true
1.2:CollectionUtils.isEmpty(new ArrayList()):true
List list = new ArrayList<>();
list.add("");
1.3:CollectionUtils.isEmpty(list):false
例2:判断集合是否不为空:
2.1:CollectionUtils.isNotEmpty(null): false
2.2:CollectionUtils.isNotEmpty(new ArrayList()): false
List lists = new ArrayList<>();
lists.add("");
2.3:CollectionUtils.isNotEmpty({a,b}): true
例3:CollectionUtils在真实项目中的使用:其是一个非常好用的工具类,且使用较频繁、让代码更加简洁和安全。下面列出常用示例
3.1:取两个集合的并集(给定俩集合A、B,把这俩所有的元素并在一起组成的集合,称为集合A与集合B的并集)
@Test
public void testUnion(){
String [] a=new String[]{"1","2","3","4","5","6"};
String [] b=new String[]{"2","3","5","7","8","9"};
List
List
//两个数组取并集代码为
System.out.println(ArrayUtils.toString(CollectionUtils.union(listA,listB)));
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
}
3.2:取两个集合的交集(给定俩集合A、B,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集)
@Test
public void testIntersection(){
String [] a=new String[]{"1","2","3","4","5","6"};
String [] b=new String[]{"2","3","5","7","8","9"};
List
List
//两个数组取交集代码为
System.out.println(ArrayUtils.toString(CollectionUtils.intersection(listA,listB)));
//[2, 3, 5]
}
3.3:取两个集合的交集的补集(补集一般指绝对补集,即一般地,设S是一个集合,A是S的一个子集,由S中所有不属于A的元素组成的集合,叫做子集A在S中的绝对补集)
@Test
public void testDisjunction(){
String [] a=new String[]{"1","2","3","4","5","6"};
String [] b=new String[]{"2","3","5","7","8","9"};
List
List
//两个数组取交集的补集
System.out.println(ArrayUtils.toString(CollectionUtils.disjunction(listA,listB)));
//[1, 4, 6, 7, 8, 9]
}
3.4:取两个集合的差集 扣除(给定俩集合A、B,由所有属于A且不属于B的元素组成的集合,叫做集合A减集合B(或集合A与集合B之差))
@Test
public void testSubtract(){
String [] a=new String[]{"1","2","3","4","5","6"};
String [] b=new String[]{"2","3","5","7","8","9"};
List
List
//两个数组取差集代码为 listA扣除listB
System.out.println(ArrayUtils.toString(CollectionUtils.subtract(listA,listB)));
//[1, 4, 6]
}
例4:判断集合是否相等
@Test
public void testIsEqual(){
class Person{}
class Girl extends Person{
}
List first = new ArrayList<>();
List second = new ArrayList<>();
first.add(1);
first.add(2);
second.add(2);
second.add(1);
Girl goldGirl = new Girl();
List boy1 = new ArrayList<>();
//每个男孩心里都装着一个女孩
boy1.add(new Girl());
List boy2 = new ArrayList<>();
//每个男孩心里都装着一个女孩
boy2.add(new Girl());
//比较两集合值
System.out.println(CollectionUtils.isEqualCollection(first,second)); //true
System.out.println(CollectionUtils.isEqualCollection(first,boy1)); //false
System.out.println(CollectionUtils.isEqualCollection(boy1,boy2)); //false
List boy3 = new ArrayList<>();
//每个男孩心里都装着一个女孩
boy3.add(goldGirl);
List boy4 = new ArrayList<>();
boy4.add(goldGirl);
System.out.println(CollectionUtils.isEqualCollection(boy3,boy4)); //true
}
例5:不可修改的集合
我们对c进行操作,s也同样获得了和c相同的内容,这样就可以避免其他人员修改这个s对象。有时候需要对它进行保护,避免返回结果被人修改。
@Test
public void testUnmodifiableCollection(){
Collection c = new ArrayList<>();
Collection s = CollectionUtils.unmodifiableCollection(c);
c.add("boy");
c.add("love");
c.add("girl");
//! s.add("have a error");
System.out.println(s);
}