python空值怎么表示_Java –从列表中删除所有空值

python空值怎么表示

python空值怎么表示

介绍:

在本文中,我们将学习如何使用普通的Java,Java 8 lambda表达式和某些第三方库从Java列表中删除空值

所以,让我们开始吧!

从Java中的

让我们探索从Java列表中删除null的不同方法:

1. Java 7或更低版​​本:

当使用Java 7或更低版​​本时,我们可以使用以下结构从列表中删除所有空值

Java

@Test
public removeAllNullsFromListWithJava7OrLower() {
 
    List<String> list =
      new ArrayList<>(Arrays.asList("A", null, "B", null));
 
    list.removeAll(Collections.singleton(null));
 
    assertThat(list, hasSize(2));
}

请注意,我们在此处创建了一个可变列表。 尝试从不可变列表中删除null将抛出java.lang.UnsupportedOperationException

2. Java 8或更高版本:

从Java 8或更高版本的Java列表中删除空值的方法非常直观且优雅:

@Test
public removeAllNullsFromListWithJava8() {
 
    List<String> list =
      new ArrayList<>(Arrays.asList("A", null, "B", null));
 
    list.removeIf(Objects::isNull);
 
    assertThat(list, hasSize(2));
}

我们可以简单地使用removeIf()构造来删除所有值。

如果我们不想更改现有列表,而是返回带有所有非空值的新列表,则可以使用:

Java

@Test
public removeAllNullsFromListWithJava8() {
 
    List<String> list =
      new ArrayList<>(Arrays.asList("A", null, "B", null));
 
    List<String> newList = list.stream().filter(Objects::nonNull)
      .collect(Collectors.toList());
 
    assertThat(list, hasSize(4));
    assertThat(newList, hasSize(2));
}

我们可以在此处了解有关Java 8流收集器的更多信息

3. Apache Commons:

Apache Commons CollectionUtils类提供了一个filter(Iterable,Predicate)方法,该方法也可以解决我们的目的。 传入的谓词将应用于列表中的所有元素:

Java

@Test
public removeAllNullsFromListWithApacheCommons() {
 
    List<String> list =
      new ArrayList<>(Arrays.asList("A", null, "B", null));
 
    CollectionUtils.filter(list, PredicateUtils.notNullPredicate());
 
    assertThat(list, hasSize(2));
}

从而,从现有列表中过滤掉所有空值

4. Google Guava:

Guava中的Iterables类提供了removeIf(Iterable,Predicate)方法,以帮助我们根据给定的谓词过滤值。 让我们看看如何利用它来发挥我们的优势:

Java

@Test
public removeAllNullsFromListUsingGuava() {
 
    List<String> list =
      new ArrayList<>(Arrays.asList("A", null, "B", null));
 
    Iterables.removeIf(list, Predicates.isNull());
 
    assertThat(list, hasSize(2));
}

另外,如果我们不想修改现有列表,Guava允许我们创建一个新的过滤列表:

Java

@Test
public removeAllNullsFromListUsingGuava() {
 
    List<String> list =
      new ArrayList<>(Arrays.asList("A", null, "B", null));
 
    List<String> newList = new ArrayList<>(
      Iterables.filter(list, Predicates.notNull()));
 
    assertThat(list, hasSize(4));
    assertThat(newList, hasSize(2));
}

Java

@Test
public removeAllNullsFromList() {
 
    List<String> list =
      new ArrayList<>(Arrays.asList("A", null, "B", null));
 
    List<String> newList = new ArrayList<>(
      Iterables.filter(list, Predicates.notNull()));
 
    assertThat(list, hasSize(4));
    assertThat(newList, hasSize(2));
}

结论:

在本快速教程中,我们探索了多种方法可以从Java列表中删除所有空值

成为第一个发表评论的人。

翻译自: https://www.javacodegeeks.com/2019/03/java-remove-nulls-from-list.html

python空值怎么表示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值