在查询过程当中,可能会遇到查询出行数据都为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)); }