如何有效地从 ArrayList 或 String Array 中删除所有 null 元素?

新手上路,请多包涵

我尝试这样的循环

// ArrayList tourists

for (Tourist t : tourists) {
    if (t != null) {
        t.setId(idForm);
    }
}

但这并不好。谁能建议我更好的解决方案?


一些有用的基准可以做出更好的决定:

While 循环、For 循环和迭代器性能测试

原文由 Juan de Dios 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 517
2 个回答

尝试:

 tourists.removeAll(Collections.singleton(null));

阅读 Java API 。代码将抛出 java.lang.UnsupportedOperationException 对于不可变列表(例如使用 Arrays.asList 创建);有关详细信息,请参阅 此答案

原文由 Lithium 发布,翻译遵循 CC BY-SA 3.0 许可协议

截至 2015 年,这是最好的方式(Java 8):

 tourists.removeIf(Objects::isNull);

注意: 此代码将抛出 java.lang.UnsupportedOperationException 对于固定大小的列表(例如使用 Arrays.asList 创建),包括不可变列表。

原文由 MarcG 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题