从ArrayList中删除第i个元素

时间:2014-01-20 07:46:34

标签: java list arraylist

我需要从列表中删除第i个元素。

    List<MyElement> MyList = new ArrayList<MyElement>();
    for (int i=0; i<5; i++)
    {
      MyElement em = new MyElement(i);
      MyList.add(em);
    }

    MyList.remove(3);

结果MyList看起来像这样:

[0][1][2][4][null]

而不是:

[0][1][2][4]

如何删除null元素?

2 个答案:

答案 0 :(得分:2)

试试这个,它不会假设null在最后。

Iterator<MyElement> ml = MyList.iterator();

while (ml.hasNext()) {
    MyElement em  = ml.next(); // must be called before you can call ml.remove()
   if (em == null) {
      ml.remove();
   }
}

答案 1 :(得分:2)

删除元素后调用MyList.trimToSize()