java List集合交集并集相减原生态方法
程序员文章站
2022-06-13 09:35:40
...
package com.bugyun.exception; import java.util.ArrayList; import java.util.List; /** * 项目名称:Test * 类名称:CollectionTest.java * 类描述: * 创建人:beyond * 创建时间:2016年4月1日 下午2:17:05 * 修改人: beyond * 修改时间:2016-4-26上午11:19:50 * 修改备注: * @version */ public class CollectionTest { public static void main(String[] args) { List<String> listOne = new ArrayList<String>(); listOne.add("abc"); listOne.add("123"); listOne.add("ABC"); List<String> listTwo = new ArrayList<String>(); listTwo.add("abc"); listTwo.add("123"); listTwo.add("XYZ"); // 以下打印单独执行查看结果,效果更明显;listOne集合元素已经变了,不便于查看效果 // [ABC, abc, 123, XYZ] // System.out.println(intersection(listOne, listTwo)); // //[abc, 123] // System.out.println(union(listOne, listTwo)); // //[ABC] // System.out.println(subtract(listOne, listTwo)); } /** * @description: 返回两者的并集 * @param listOne * @param listTwo * @return List<E> * @throws * @author beyond * @data:2016年4月1日下午2:37:01 */ private static <E> List<E> intersection(List<E> listOne, List<E> listTwo) { listOne.removeAll(listTwo); listOne.addAll(listTwo); return listOne; } /** * @description: 返回两者的交集 * @param listOne * @param listTwo * @return List<E> * @throws * @author beyond * @data:2016年4月1日下午2:37:20 */ private static <E> List<E> union(List<E> listOne, List<E> listTwo) { listOne.retainAll(listTwo); return listOne; } /** * @description: listOne - ListTwo 集合 * @param listOne * @param listTwo * @return List<E> * @throws * @author beyond * @data:2016-4-26上午11:19:50 */ private static <E> List<E> subtract(List<E> listOne, List<E> listTwo) { listOne.removeAll(listTwo); return listOne; } }