刪除List全部元素都爲空的行數據

在查詢過程當中,可能會遇到查詢出行數據都爲null的狀況,以下圖所示:java

咱們能夠採用如下的方法刪除全爲空的行數據lua

1. 使用原生Java刪除空行debug

@Test
    public void testRemoveNullElement() {
        List<Integer> list =  new ArrayList<>(Arrays.asList(null, 1, null));
        
        while (list.remove(null));

        assertThat(list, hasSize(1));
    }

 debug結果:code

2. 使用Apache Commons Collections刪除空行blog

@Test
    public void testRemoveNullElementByApache() {
        List<Integer> list =  new ArrayList<>(Arrays.asList(null, 1, 2, null, 3, null));

        CollectionUtils.filter(list, PredicateUtils.notNullPredicate());

        assertThat(list, hasSize(3));
    }

 其中,filter的具體實現方法爲:rem

public static <T> boolean filter(final Iterable<T> collection, final Predicate<? super T> predicate) {
        boolean result = false;
        if (collection != null && predicate != null) {
            for (final Iterator<T> it = collection.iterator(); it.hasNext();) {
                if (!predicate.evaluate(it.next())) {
                    it.remove();
                    result = true;
                }
            }
        }
        return result;
    }

3. 使用java8的lambdas表達式刪除空行it

@Test
public void testRemoveNullElementByLambdas() {
     List<Integer> list =  new ArrayList<>(Arrays.asList(null, 1, 2, null, 3, null));

     list.removeIf(Objects::isNull);

     assertThat(list, hasSize(3));
}
相關文章
相關標籤/搜索