代码之家  ›  专栏  ›  技术社区  ›  Ashish Agarwal

对于过滤,每个循环的替换是什么?

  •  2
  • Ashish Agarwal  · 技术社区  · 16 年前

    虽然每个循环都有很多优点,但问题是,当你想过滤(过滤意味着从列表中删除元素)一个列表时,它不起作用,你能请任何替换吗,因为即使遍历索引也不是一个好的选择。

    4 回复  |  直到 16 年前
        1
  •  11
  •   ChssPly76    16 年前

    iterator

    for(Iterator<MyElement> it = list.iterator(); it.hasNext(); ) {
        MyElement element = it.next();
        if (some condition) {
          it.remove();
        }
    }
    

    B

    1. element

    remove()

        2
  •  0
  •   Andrzej Doyle    16 年前

    ArrayList get(i++)

    java.util.RandomAccess LinkedList

        4
  •  0
  •   Andreas Dolk    16 年前

    List<Object> data = getListFromSomewhere();
    List<Object> filter = new ArrayList<Object>();
    
    // create Filter
    for (Object item: data) {
      if (throwAway(item)) {
        filter.add(item);
      }
    }
    
    // use Filter
    for (Object item:filter) {
      data.remove(item);
    }
    
    filter.clear();
    filter = null;
    
    推荐文章