前言今天开发中发现服务器返回的json数据中对于空数组服务器并不是返回[]而是返回[null]这也代表了数组为空也是合法的json结构但是使用Gson解析时比如我解析为集合它会解析成包含一个null元素的ArrayList所以我需要从列表中移除掉null元素然后再判断集合是否为空为空就提示无数据不为空就展示列表。❌ 错误方式javafor(Stringitem:list){if(itemnull){list.remove(item);// 抛 ConcurrentModificationException}}✅ 方式一Iterator最传统javaIteratorStringiteratorlist.iterator();while(iterator.hasNext()){Stringitemiterator.next();if(itemnull){iterator.remove();// 用 iterator 自己的 remove安全}}✅ 方式二removeIf最简洁推荐javalist.removeIf(item-itemnull);// 更简洁list.removeIf(Objects::isNull);✅ 方式三倒序 for 循环javafor(intilist.size()-1;i0;i--){if(list.get(i)null){list.remove(i);}}倒序的原因正序删除元素后后续元素索引会前移容易跳过元素倒序删除不影响前面元素的索引。✅ 方式四正序 for 循环需手动处理索引javafor(inti0;ilist.size();i){if(list.get(i)null){list.remove(i);i--;// 删除后索引前移需要补偿}}总结方式推荐度说明removeIf⭐⭐⭐⭐⭐最简洁Java 8Iterator.remove()⭐⭐⭐⭐通用兼容性好倒序 for 循环⭐⭐⭐直观不易出错正序 for 循环⭐⭐需要手动i--容易忘for-each 直接remove❌抛异常日常开发首选removeIf需要兼容低版本用Iterator。如果使用kotlin还可以用list.filterNotNull()但它不是直接改原集合而是返回新集合。