zoukankan      html  css  js  c++  java
  • java list集合运算

    list集合运算

    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    public class ListDemo {
    
    	public static void main(String[] args) throws IOException, ClassNotFoundException {
    		// TODO Auto-generated method stub
    		  List <String> listA = new ArrayList <String>();
    		  listA.add("aa");
    		  listA.add("bb");
    		  listA.add("cc");
    		  
    		  List <String> listB = new ArrayList <String>();
    		  listB.add("cc");
    		  listB.add("dd");
    		  listB.add("ff");
    		  
    		  List <String> listC = new ArrayList <String>();
            		  
    		  listC = deepCopy(listA);
    		  
    		  //求并集
    		  listA.addAll(listB);
    		  System.out.println("--并集--" +listA);
    		  //--并集--[aa, bb, cc, cc, dd, ff]
    	
    		  //交集
    		  listA = deepCopy(listC); 
    		  listA.retainAll(listB);
    		  System.out.println("--交集--" +listA);
    		  //--交集--[cc]
    		 
    		  
    		  //差集
    		  listA = deepCopy(listC); 
    		  listA.removeAll(listB);
    		  System.out.println("--差集--" +listA);
    		  //--差集--[aa, bb]
    		  
    
    		  //无重复并集
    		  listA = deepCopy(listC); 
    		  listA.removeAll(listB);
    		  listA.addAll(listB);
    		  System.out.println("--无重复并集--" +listA);
    		  //--无重复并集--[aa, bb, cc, dd, ff]
    
    		  
    	}
    	
    	public static <T> List<T> deepCopy(List<T> src) throws IOException, ClassNotFoundException {  
    		/**
    		 * 深拷贝
    		 */
    	    ByteArrayOutputStream byteOut = new ByteArrayOutputStream();  
    	    ObjectOutputStream out = new ObjectOutputStream(byteOut);  
    	    out.writeObject(src);  
    
    	    ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());  
    	    ObjectInputStream in = new ObjectInputStream(byteIn);  
    	    @SuppressWarnings("unchecked")  
    	    List<T> dest = (List<T>) in.readObject();  
    	    return dest;  
    	} 
    }
    

      

  • 相关阅读:
    新经资讯项目业务逻辑梳理
    HTTP状态保持的原理
    CSRF的原理和防范措施
    装饰器路由具体实现梳理
    Flask中异常捕获
    正则匹配路由
    (搬运以学习)flask 上下文的实现
    flask之请求钩子
    如何在linux中创建虚拟环境
    面包屑导航
  • 原文地址:https://www.cnblogs.com/xiao-apple36/p/9391325.html
Copyright © 2011-2022 走看看