【Java 300-42集】学习笔记

CollectionUtils类

其中封装了很多对于Java集合的操作和判断的方法,查阅了相关例子和资料,个人感觉可以在操作数据的时候使用,帮助我们实现很多功能,提高代码逼格,正在学习中,此文章就当是学习笔记吧。。。。

下载路径:可以去apache官网上的project中找到commons,也可以使用下面的URL

http://commons.apache.org/proper/commons-collections/download_collections.cgi  commons-collections4-4.2-bin.zip

 

1.判断集合是否为空的两个方法,例子:

package test;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.collections4.CollectionUtils;

public class test1 {

	public static void main(String[] args) {
		List<Integer> list=new ArrayList<>();
		list.add(1);
		list.add(2);
		
		System.out.println(CollectionUtils.isEmpty(list));
		System.out.println(CollectionUtils.isNotEmpty(list));
	}
	
}



运行结果:
false
true

 

2.一些常用的方法

package test;

import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.collections4.CollectionUtils;

public class test1 {

	@SuppressWarnings("deprecation")
	public static void main(String[] args) {
		List<Integer> a = Arrays.asList(1,2,3,4,5);
		List<Integer> b = Arrays.asList(3,4,4,5,6,7);
		
		System.out.println("取值-并集:"+CollectionUtils.union(a, b));
		//此处应该是有去重复操作
		System.out.println("取值-交集:"+CollectionUtils.intersection(a, b));
		System.out.println("取值-交集:"+CollectionUtils.intersection(b, a));
		System.out.println("取值-交集:"+CollectionUtils.retainAll(a, b));
		System.out.println("取值-交集的补集:"+CollectionUtils.disjunction(a, b));
		System.out.println("取值-交集的补集:"+CollectionUtils.disjunction(b, a));
		//a中有,而b中没有的数据
		System.out.println("取值-a与b的差值:"+CollectionUtils.subtract(a, b));
		//b中有,而a中没有的数据
		System.out.println("取值-b与a的差值:"+CollectionUtils.subtract(b, a));
		List<Integer> c = Arrays.asList(1,2,3,4,5);
		System.out.println("比较两个集合的值:"+CollectionUtils.isEqualCollection(a, b));
		System.out.println("比较两个集合的值:"+CollectionUtils.isEqualCollection(a, c));
		
		Collection<Integer> cc = CollectionUtils.unmodifiableCollection(c);
		cc.add(234);
		Iterator<Integer> ic = cc.iterator();
		while (ic.hasNext()) {
			System.out.println(ic.next());
		}
	}
	
}



运行结果:
取值-并集:[1, 2, 3, 4, 4, 5, 6, 7]
取值-交集:[3, 4, 5]
取值-交集:[3, 4, 5]
取值-交集:[3, 4, 5]
取值-交集的补集:[1, 2, 4, 6, 7]
取值-交集的补集:[1, 2, 4, 6, 7]
取值-a与b的差值:[1, 2]
取值-b与a的差值:[4, 6, 7]
比较两个集合的值:false
比较两个集合的值:true
Exception in thread "main" java.lang.UnsupportedOperationException
	at org.apache.commons.collections4.collection.UnmodifiableCollection.add(UnmodifiableCollection.java:82)
	at test.test1.main(test1.java:33)

Collections.unmodifiableCollection可以得到一个集合的镜像,它的返回结果是不可直接被改变,否则会提示错误

 

以上是一些常用的方法,CollectionUtils中还有一些其他的方法,有空我会继续总结。

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-04-03 17:22  胡鹏飞  阅读(34)  评论(0)    收藏  举报