在查詢過程當中,可能會遇到查詢出行數據都爲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)); }