1

这是我的 arrayList 代码,

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

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

4

5 回答 5

3

从 java 8 你可以使用

list.removeIf(s -> s.contains("le"));
于 2018-07-01T08:20:36.577 回答
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);
    }

}
于 2013-10-12T07:07:11.867 回答
0

列表的 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);

我希望这就是你要找的。

于 2013-10-12T06:55:43.157 回答
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 到列表中的一个元素。

于 2013-10-12T06:57:59.540 回答
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]);
    }
于 2013-10-12T07:03:36.553 回答