我在String表的java中有一个数组列表,我想从这些表中删除空元素和空元素

时间:2018-04-30 20:42:17

标签: java arraylist

我有一个String表的数组列表,如下所示:

[Hello, , Jack] //String table[0]
[] // String table[1]

如何删除空元素和空元素:

[Hello, Jack] //String table[0]

2 个答案:

答案 0 :(得分:2)

由于您有ArrayList<String[]>,因此您可以使用Collection#removeIf删除null中的List(或空)元素:

list.removeIf(table -> table == null || table.length == 0);

要从数组本身中删除null或空元素,您必须在没有它们的情况下重建数组:

list.replaceAll(table -> Arrays.stream(table)
                               .filter(Objects::nonNull)
                               .filter(s -> !s.isEmpty())
                               .toArray(String[]::new);

答案 1 :(得分:0)

如果您不使用Java8 +,则可以执行以下操作:

List<String[]> list = new ArrayList<String[]>();

list.add(new String[]{"Hello", "", null, "Jack"});
list.add(new String[]{});

for(String[] array : list){
    List<String> arrayList = new ArrayList<>(Arrays.asList(array));
    arrayList.removeAll(Collections.singleton(null));
    arrayList.removeAll(Collections.singleton(""));
    array = arrayList.toArray(new String[arrayList.size()]);
    System.out.println(Arrays.toString(array));
}