package com.ycsoft.daos.helper; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.beanutils.PropertyUtils; /** * <p> 对集合的操作的工具类 扩展了 Apache <code> ListUtils </code></p> */ public class ListHelper extends org.apache.commons.collections.ListUtils{ /** * <p> 转换一个字符串集合,根据split在list item前和后添加 * 转换后的格式如:'item1','item2','item3'</p> * @param startSplit * @param endSplit 字符将添加在list每一项的前后 * @return */ public static String parseListToStr(String startSplit,String endSplit ,List src){ StringBuffer sb = new StringBuffer(); for (Object _o : src) sb.append( startSplit+_o+endSplit + "," ); if(sb.length()>0)sb.deleteCharAt(sb.length()-1); return sb.toString(); } /** * <p> 转换一个字符串集合,如果是字符类型,则在该字符串的前后添加符号如:"'"</p> * @param split 该字符将添加在list每一项的前后 * @return */ public static String parseListToStr(List src){ StringBuffer sb = new StringBuffer(); for (Object _o : src) { if(_o instanceof String || _o instanceof Date || _o instanceof Character)sb.append("'"+_o+"'"); else sb.append(_o); sb.append(","); } if(sb.length()>0)sb.deleteCharAt(sb.length()-1); return sb.toString(); } public static String formListToStr(List src){ StringBuffer sb = new StringBuffer(); for (Object _o : src) { if(_o instanceof String || _o instanceof Date || _o instanceof Character)sb.append(_o); else sb.append(_o); sb.append(","); } if(sb.length()>0)sb.deleteCharAt(sb.length()-1); return sb.toString(); } /** * <p> 清空Map中元素值为NULL的元素 </p> * @param src * @return 清理之后的Map对象 */ public static void clearNullElement(Map map){ if(map == null) return ; Object [] vs = map.keySet().toArray(); for (Object o : vs) { if(null == map.get(o)) map.remove(o); } } /** * <p> 清空columns 与 Bean 中名称相同的属性且值为NULL的属性,并添加至Map中 </p> * @return maps */ public static Map<String, Object> getElementOfNotNull(List<String> columns , Object bean )throws Exception{ if(null == bean){ throw new java.lang.NullPointerException("传入的实体Bean为null!"); } Map<String ,Object> maps = new HashMap<String ,Object> (); Object _o = null ; for (String _s : columns) { _o = PropertyUtils.getProperty(bean, _s); if(null != _o){ maps.put(_s, _o); } } return maps ; } /** * 根据给定的map key 生成一个新的map , * 并在new map key前面添加给定的字符 */ @SuppressWarnings("unchecked") public static Map<String , Object> parseMapKey(Map map , String start)throws Exception{ if(map == null ) return map ; Iterator<String> ite= map.keySet().iterator(); String key = null; Map newMap = new HashMap(); while(ite.hasNext()){ key = ite.next(); newMap.put(start + key , map.get(key) ); } return newMap ; } }