java中的数组列表

时间:2011-03-25 16:19:57

标签: java arraylist

有没有办法通过内置函数调用删除ArrayList中的所有空单元格?我看到了trimToSize,但我并没有真正理解它的意思。

例如,假设我有一个包含{1,2,3}的数组。假设我说array.remove(1)所以现在数组看起来像{1,null,3}。是否有调用函数使其收敛为{1,3}

我知道我可以硬编码一种方法来为我做这件事,但我只是好奇。

3 个答案:

答案 0 :(得分:7)

那是exactly what remove does

  

删除指定的元素   在此列表中的位置。转移任何   左边的后续元素   (从他们的指数中减去一个)。

现在,如果你在讨论数组而不是ArrayList,那么答案就是否定。

答案 1 :(得分:2)

如果您使用的是ArrayList,则无需担心从中删除元素后压缩数组。 ArrayList类负责这种内务管理。

如果您使用的是数组,则可以使用Commons Lang ArrayUtils类。此类中的removeElement方法简化了从数组中删除元素并将其后的所有元素移到左侧。

答案 2 :(得分:1)

here中,您会找到一篇文章,介绍如何删除集合中的所有空元素

    List<Integer> myList = new ArrayList<Integer>();

    myList.add(1);
    myList.add(2);
    myList.add(null);
    myList.add(3);
    myList.add(null);
    myList.add(4);

    System.out.println("With null values");
    for(Integer i: myList)
        System.out.println(i);

    myList.removeAll(Collections.singleton(null));              

    System.out.println("After deleting null values");
    for(Integer i: myList)
        System.out.println(i);

输出: 使用空值 1 2 空值 3 空值 4

删除空值后 1 2 3 4