【问题标题】:Remove all the strings in an array list containing certain characters删除包含某些字符的数组列表中的所有字符串
【发布时间】:2021-04-28 07:50:31
【问题描述】:

所以我有一个包含字符串的数组列表,例如:

ArrayList<String> list = new ArrayList<>();
list.add("bookshelf");
list.add("bookstore");
list.add("library");
list.add("pencil");

现在我想搜索并删除 arraylist 中包含单词“book”的所有字符串。据我了解list.remove("book"); 只会搜索特定的字符串“book”,而不是包含单词“book”的字符串。我该如何解决这个问题?

【问题讨论】:

    标签: java android-studio arraylist


    【解决方案1】:

    你可以像这样使用removeIf

    list.removeIf(s -> s.contains("book"));
    

    【讨论】:

    • 很好的答案,我认为声明 removeIf 在版本 8 及更高版本中受支持是很有价值的
    • @NirAlfasi 它存在于 Java-8 :)
    【解决方案2】:

    注意:此答案适用于 Java 7 及更低版本(当然,它也适用于更高版本,但 YCF_L 的答案在 8 及更高版本中更易于实现)。

    要求是迭代列表,检查每个元素,如果它满足某个条件:删除它。

    由于这种情况,我们陷入了一种危险的情况,即在迭代列表的同时修改列表,这是有问题的,因为当我们删除列表中的元素时,它的大小会发生变化。

    为了解决这个问题,我们可以按索引从最后一个元素开始迭代列表并返回到第一个元素,这样,删除索引n处的元素不会影响访问索引处的任何元素

    我将把实施细节留给你,以免“灌输”并破坏你的锻炼:)

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 1970-01-01
      • 2015-06-16
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 2012-02-18
      相关资源
      最近更新 更多