有效地删除LinkedList中其他字符串中包含的字符串

用户名

我有一个包含字符串的简单LinkedList。

LinkedList<String> list = new LinkedList<String>();
list.add("A, B, C, D");
list.add("R");
list.add("A");
list.add("C, D");

因此,我们的LinkedList为: [ "A, B, C, D", "R", "A" ,"C, D" ]

如您所见,"A"并且"C, D"已经包含在中"A,B,C,D"

删除包含的字符串的最有效方法是什么?

宝贝

首先,您可以在添加新值之前使用contains()方法(只要您每次都添加单个String,但不是。)。

其次,如果您将更改添加字符串的方式或LinkedList限制,则似乎可以轻松避免此“问题”。

无论如何,这是一个简单的方法,可以满足您的需求:

private  void deleteIfContains(LinkedList<String> list, String str) {
    Iterator<String> headIterator = list.iterator();
    HashMap<Integer, String> newValues = new HashMap<>();
    int index = 0;

    while (headIterator.hasNext()) {
        String headString = headIterator.next();

        if (headString.contains(str)) {
            headIterator.remove();
            //replace method won't handle ','..you will need to use regex for it
            newValues.put(index, headString.replace(str, ""));
        }
        index++;
    }

    //Avoid ConcurrentModificationException
    for (int i : newValues.keySet()) {
        list.add(i, newValues.get(i));
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何有效地从 Scala 中的字符串中删除非单词字符?

如何有效地删除字符串中连续的重复单词或短语

如何有效地排序R中字符串中的字符?

有效删除Ruby数组中其他元素的所有子字符串

如何有效地计算字符串中字符频率的前缀和?

有效地查找字符串中的重复字符

如何删除列表中的字符串并有效地在python中仅保留整数

在Swift中有效地删除字符串中的最后一个单词

安全有效地解析和替换字符串中的令牌

如何有效地提取C ++中的字符串模式?

有效地在JavaScript中添加十六进制字符串

有效地查找和替换文档中的字符串

如何有效地将字符串拆分成J中的行?

在Java中,如何更有效地附加字符串?

如何有效地从Java中的ArrayList连续连接字符串的连续间隔?

如何有效地匹配两个数据帧中的字符串

有效地从集合中获取字符串“ startingWith”的子集

有效地将空字符串替换为数组中的null

Perl:有效地计算许多字符串中的许多单词

有效地从Scala中的字符串中提取日期

如何在R中有效地对字符串中的字母重新排序?

在Python3中有效地切片字符串

如何有效地提取字符串中的实例值

有效地在python中合并两个大字符串

有效地搜索字符串中的关键字

如何有效地从大txt文件中仅读取字符串

在R中通过索引有效地替换字符串元素

有效地串联字符串数组

有效地检查字符串列表中的字符串中的单词