日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中list去除空值_Java –从列表中删除所有空值

發布時間:2023/12/3 java 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中list去除空值_Java –从列表中删除所有空值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java中list去除空值

介紹:

在本文中,我們將學習如何使用普通的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

java中list去除空值

總結

以上是生活随笔為你收集整理的java中list去除空值_Java –从列表中删除所有空值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。