CollectionUtils集合工具类的常用方法(import org.apache.commons.collections4.CollectionUtils;)

集合判断:

例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"};

ListlistA=Arrays.asList(a);

ListlistB=Arrays.asList(b);

//两个数组取并集代码为

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"};

ListlistA=Arrays.asList(a);

ListlistB=Arrays.asList(b);

//两个数组取交集代码为

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"};

ListlistA=Arrays.asList(a);

ListlistB=Arrays.asList(b);

//两个数组取交集的补集

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"};

ListlistA=Arrays.asList(a);

ListlistB=Arrays.asList(b);

//两个数组取差集代码为  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);
}

 

 

 

 

 

 

 

 

你可能感兴趣的:(java)