Java过滤掉map集合中key或value为空的值

来源:互联网 发布:三坐标编程教材 编辑:程序博客网 时间:2024/04/30 01:19
import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/** * 过滤掉map集合中key或value为空的值 * @author lmb * @date 2017-3-14 */public class MapRemoveNullUtil {           /**     * 移除map中空key或者value空值      * @param map     */    public static void removeNullEntry(Map map){         removeNullKey(map);         removeNullValue(map);     }          /**     * 移除map的空key     * @param map     * @return     */     public static void removeNullKey(Map map){         Set set = map.keySet();         for (Iterator iterator = set.iterator(); iterator.hasNext();) {             Object obj = (Object) iterator.next();             remove(obj, iterator);         }     }          /**     * 移除map中的value空值     * @param map     * @return     */     public static void removeNullValue(Map map){         Set set = map.keySet();         for (Iterator iterator = set.iterator(); iterator.hasNext();) {             Object obj = (Object) iterator.next();             Object value =(Object)map.get(obj);             remove(value, iterator);         }     }          /**     * 移除map中的空值     *     * Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁。      * Iterator 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,     * 所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照 fail-fast 原则 Iterator 会马上抛出 java.util.ConcurrentModificationException 异常。     * 所以 Iterator 在工作的时候是不允许被迭代的对象被改变的。     * 但你可以使用 Iterator 本身的方法 remove() 来删除对象, Iterator.remove() 方法会在删除当前迭代对象的同时维护索引的一致性。     * @param obj     * @param iterator     */     private static void remove(Object obj,Iterator iterator){         if(obj instanceof String){             String str = (String)obj;            if(isEmpty(str)){  //过滤掉为null和""的值 主函数输出结果map:{2=BB, 1=AA, 5=CC, 8=  }//            if("".equals(str.trim())){  //过滤掉为null、""和" "的值 主函数输出结果map:{2=BB, 1=AA, 5=CC}                iterator.remove();             }                    }else if(obj instanceof Collection){             Collection col = (Collection)obj;             if(col==null||col.isEmpty()){                 iterator.remove();             }                      }else if(obj instanceof Map){             Map temp = (Map)obj;             if(temp==null||temp.isEmpty()){                 iterator.remove();             }                      }else if(obj instanceof Object[]){             Object[] array =(Object[])obj;             if(array==null||array.length<=0){                 iterator.remove();             }         }else{             if(obj==null){                 iterator.remove();             }         }     }          public static boolean isEmpty(Object obj){        return obj == null || obj.toString().length() == 0;    }         public static void main(String[] args) {         Map map = new HashMap();         map.put(1, "AA");         map.put("2", "BB");         map.put("5", "CC");         map.put("6",null);         map.put("7", "");         map.put("8", "  ");         System.out.println(map);//输出结果:{2=BB, 1=AA, 7=, 6=null, 5=CC, 8=  }        removeNullEntry(map);        System.out.println(map);    } } 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微博qq忘记密码怎么办 三星盖乐世忘记密码怎么办 三盖乐世4忘记密码怎么办 密码锁钥匙丢了怎么办 商标是tm标怎么办 环保合格证掉了怎么办 车子合格证丢了怎么办 大牙附近肿了怎么办 办好营业执照后怎么办商标 商标十年到期了怎么办 公司注册了商标怎么办 2018年属兔不适合结婚怎么办 交通事故对方没钱赔怎么办 滴滴快车出车祸怎么办 交警法院扣车怎么办 肇事逃逸没钱赔怎么办 撞死人无力赔偿怎么办 宝贝咳嗽很厉害怎么办 开车有人别车怎么办 判刑罚金交不起怎么办 罚金太多交不起怎么办 判决书上的罚金怎么办 刑事罚款不交怎么办 缎面的鞋脏了怎么办 夏天脸上长粉刺怎么办 鬃狮不吃东西怎么办 买二手车的车牌怎么办 榴莲打开了肉没熟怎么办 gmat的prep做完怎么办 电脑没ip地址怎么办 电脑ip地址缺失怎么办 cos还原不了人物怎么办 执行局抓人十五天不放人怎么办 笔记本电脑键盘按键错乱怎么办 靠墙倒立上不去怎么办 医院多收钱了怎么办 学生总是转笔怎么办 吃错东西呕吐怎么办 手腕筋扭伤了怎么办 右膝盖内侧疼痛怎么办 膝盖关节腔积液怎么办