本文实例讲述了Java实现过滤掉映射集合中键或值为空的值。分享给大家供大家参考,具体如下:
进口java.util.Collection; 进口java.util.HashMap; 进口java.util.Iterator; 进口java.util.Map; 进口java.util.Set;/* * *过滤掉映射集合中键或值为空的值 * @author lmb * @date 2017-3-14 */公开课MapRemoveNullUtil {/* * *移除地图中空键或者价值空值 * @param地图 */公共静态孔隙removeNullEntry(地图地图){ removeNullKey(地图); removeNullValue(地图); }/* * *移除地图的空键 * @param地图 * @return */公共静态孔隙removeNullKey(地图地图){ 设置组=map.keySet (); (迭代器迭代器=set.iterator ();iterator.hasNext ();) { 对象obj=(对象)iterator.next (); remove (obj,迭代器); } }/* * *移除地图中价值的空值 * @param地图 * @return */公共静态孔隙removeNullValue(地图地图){ 设置组=map.keySet (); (迭代器迭代器=set.iterator ();iterator.hasNext ();) { 对象obj=(对象)iterator.next (); 对象价值=https://www.yisu.com/zixun/(对象)map.get (obj); 删除(值,迭代器); } }/* * *移除地图中的空值 * *迭代器是工作在一个独立的线程中,并且拥有一个互斥锁。 *迭代器被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变, *所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照快速失败原则迭代器会马上抛出java.util。ConcurrentModificationException异常。 *所以迭代器在工作的时候是不允许被迭代的对象被改变的。 *但你可以使用迭代器本身的方法删除()来删除对象,Iterator.remove()方法会在删除当前迭代对象的同时维护索引的一致性。 * @param obj * @param迭代器 */私有静态空间删除(对象obj,迭代器迭代器){ 如果(obj instanceof字符串){ 字符串str=(String) obj; 如果(isEmpty (str)){//过滤掉为零和”的值主函数输出结果地图:{2=BB, 1=AA, 5=CC, 8=}//如果(“.equals (str.trim())){//过滤掉为null,“”和“”的值主函数输出结果地图:{2=BB, 1=AA, 5=CC} iterator.remove (); } }else if (obj instanceof收集){ 收集坳=(集合)obj; 如果(col==null | | col.isEmpty ()) { iterator.remove (); } }else if (obj instanceof地图){ 地图temp=(Map) obj; 如果(temp==null | | temp.isEmpty ()) { iterator.remove (); } }else if (obj instanceof对象[]){ []数组对象=[])(对象obj; 如果数组==null | | array.length<=0) { iterator.remove (); } 其他}{ 如果(obj==null) { iterator.remove (); } } } 公共静态布尔isEmpty(对象obj) { 返回obj==null | | obj.toString () . length ()==0; } 公共静态void main (String [] args) { 地图地图=new HashMap (); 地图。把(1、“AA”); 地图。把(“2”,“BB”); 地图。把(“5”,“CC”); map.put (" 6 ", null); 地图。把(“7”,“”); 地图。把(“8”、“”); System.out.println(地图);//输出结果:{2=BB, 1=AA, 7=6=null, 5=CC, 8=} removeNullEntry(地图); System.out.println(地图); } } >之前运行结果:
{1=AA, 2=BB, 5=CC, 6=null, 7=,=8,}
引用>
{1=AA, 2=BB, 5=CC, 8=,}更多关于java算法相关内容感兴趣的读者可查看本站专题:《java数据结构与算法教程》、《java操作DOM节点技巧总结》,《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
Java实现过滤掉映射集合中键或值为空的值示例