从包含特定子字符串的arraylist元素中删除特定字符串

时间:2013-10-12 06:52:11

标签: java arraylist

这是我的arrayList代码,

 String[] n = new String[]{"google","microsoft","apple"};
      final List<String> list =  new ArrayList<String>();
      Collections.addAll(list, n);

如何从上面的列表中删除包含le的所有元素 有没有任何默认方法或通过循环我们必须手动删除。告诉我如何做。谢谢。

5 个答案:

答案 0 :(得分:2)

使用以下代码。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class RemoveElements {

    /**
     * @param args
     */
    public static void main(String[] args) {
         String[] n = new String[]{"google","microsoft","apple"};
          List<String> list =  new ArrayList<String>();
          Collections.addAll(list, n);
          System.out.println("list"+list);
          Iterator<String> iter = list.iterator();
          while(iter.hasNext()){
              if(iter.next().contains("le"))
                  iter.remove();
          }

          System.out.println("list"+list);
    }

}

答案 1 :(得分:0)

List的javadoc的一部分:

/**
 * Removes the first occurrence of the specified element from this list,
 * if it is present (optional operation).  If this list does not contain
 * the element, it is unchanged...
boolean remove(Object o);

我希望这就是你要找的东西。

答案 2 :(得分:0)

为什么要add然后remove

adding之前检查。

    String[] n = new String[]{"google","microsoft","apple"};
     final List<String> list =  new ArrayList<String>();
     for (String string : n) {
         if(string.indexOf("le") <0){
            list.add(string);
        }
    }

在列表中只添加一个元素microsoft

答案 3 :(得分:0)

是的,你必须从列表中的所有值循环,
这可能会对你有帮助,

    String[] array  = new String[]{"google","microsoft","apple"};
    List<String> finallist =  new ArrayList<String>();
    for (int i = array.length -1 ; i >= 0 ; i--) 
    {
        if(!array[i].contains("le"))
            finallist.add(array[i]);
    }

答案 4 :(得分:0)

从Java 8开始,您可以使用

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