zoukankan      html  css  js  c++  java
  • 一些小工具方法,能将容器转换成指定的数组类型有使用泛型

    如果大家有更好的方法,请回帖


    /**
    	 *一个小工具类
    	 *@author Hf
    	 *@mailto:huangfei8087@163.com
    	 * 在编程的过程中很多时候都希望能将
    	    容器直接转成成为指定的数据,比如
    		List<Integer>ids = new ArrayList<Integer>();
    		则每次都需要手动创建一个Integer数组,然后在赋值。 
    		
    		collectionToArray 这个方法就实现了这个功能,可直接转换成为Integer数组
    	*/
    public class Helper{
    	/**
    	 *判断去空的方法
    	 *@author Hf
    	 *@mailto:huangfei8087@163.com
    	 *
    	*/
    	public static boolean isNull(Object value){
    		if(value == null){
    			return true ; 
    		}
    		if(value.getClass().isArray()){
    			if(Array.getLength(value) == 0){
    				return true ; 
    			}
    		}
    		if(value instanceof Collection<?>){
    			Collection<?> collection = (Collection<?>) value ;
    			if(collection.isEmpty()){
    				return true ;
    			}
    		}else if(value instanceof Map<?, ?>){
    			Map<?, ?> map = (Map<?, ?>) value ;
    			if(map.isEmpty()){
    				return true ;
    			}
    		}else if(value instanceof String){
    			String string = (String) value ;
    			return isNull(string) ;
    		}
    		return false; 
    	}
    	
    	
    	/**
    	 * 判断String类型是否为空 
    	 *@author Hf
    	 *@mailto:huangfei8087@163.com
    	 * */
    	public static boolean isNull(String value){
    		if(value == null){
    			return true ;
    		}
    		if("".equals(value.trim())){
    			return true ;
    		}
    		return false ;
    	}
    	
    	/**
    	 *去掉数组中为NULL 的字段
    	 *@author Hf
    	 *@mailto:huangfei8087@163.com
    	 * */
    	public static <T> List<T> checkNull(T[] objs){
    		if(isNull(objs)){
    			return null;
    		}
    		List<T> objList = new ArrayList<T>(); 
    		for(T obj : objs){
    			if(!isNull(obj)){
    				objList.add(obj) ;   
    			}
    		}
    		if(isNull(objList)){
    			return null;
    		}
    		return objList ;  
    	}
    	
    
    	/**
    	 *将容器转换成为数组
    	 *@author Hf
    	 *@mailto:huangfei8087@163.com
    	 * */
    	public static <T> T[] collectionToArray(Collection<T> coll){ 
    		T[] ts = null ;
    		try {
    			if(coll == null || coll.isEmpty()){
    				return ts;
    			}
    			
    			ts = collectionToArray(coll , null ) ;
    		} catch (Exception e) {
    			try {
    				ts = collectionToArray(coll , Object.class ) ; 
    			} catch (Exception e2) { 
    				e2.printStackTrace( ) ; 
    			}
    		}
    		return ts ; 
    	}
    	
    	/**
    	 * 将容器转换成为指定数组
    	 *@author Hf
    	 *@mailto:huangfei8087@163.com
    	 * */ 
    	public static <T> T[] collectionToArray(Collection<T> coll , Class<?> clazz){
    		Iterator<T> iterator = coll.iterator() ;
    		T[] ts = null ;
    		int x=0 ;
    		while(iterator.hasNext()){
    			T tempT = iterator.next() ; 
    			if(x == 0){
    				ts = (T[])Array.newInstance(clazz != null ? clazz : tempT.getClass() 
    						, coll.size()) ;
    			}
    			ts[x++] = tempT ; 
    		}
    		return ts ;  
    	}
    	
    }


  • 相关阅读:
    python操作elasticsearch
    php源码的编译
    linux 访问windows 共享文件
    list容器排除重复单词的程序
    求组合数m_n
    简单堆排序
    快速排序
    判断点在直线左侧或者右侧
    求取点到直线的距离
    求给定三个点的夹角
  • 原文地址:https://www.cnblogs.com/james1207/p/3301678.html
Copyright © 2011-2022 走看看