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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java –从列表中删除所有空值

發(fā)布時(shí)間:2023/12/3 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java –从列表中删除所有空值 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹:

在本文中,我們將學(xué)習(xí)如何使用普通的Java,Java 8 lambda表達(dá)式和某些第三方庫(kù)從Java 列表中刪除空值 。

所以,讓我們開(kāi)始吧!

從Java中的

讓我們探索從Java 列表中刪除null的不同方法:

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

使用Java 7或更低版??本時(shí),我們可以使用以下結(jié)構(gòu)從列表中刪除所有空值 :

Java

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

請(qǐng)注意,我們?cè)诖颂巹?chuàng)建了一個(gè)可變列表。 嘗試從不可變列表中刪除null將拋出java.lang.UnsupportedOperationException 。

2. Java 8或更高版本:

從Java 8或更高版本的Java 列表中刪除空值的方法非常直觀且優(yōu)雅:

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

我們可以簡(jiǎn)單地使用removeIf()構(gòu)造來(lái)刪除所有空值。

如果我們不想更改現(xiàn)有列表,而是返回帶有所有非空值的新列表,則可以使用:

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)); }

我們可以在此處了解有關(guān)Java 8流收集器的更多信息。

3. Apache Commons:

Apache Commons CollectionUtils類提供了一個(gè)filter(Iterable,Predicate)方法,該方法也可以解決我們的目的。 傳入的謂詞將應(yīng)用于列表中的所有元素:

Java

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

從而,從現(xiàn)有列表中過(guò)濾掉所有空值 。

4. Google Guava:

Guava中的Iterables類提供了removeIf(Iterable,Predicate)方法,以幫助我們根據(jù)給定的謂詞過(guò)濾值。 讓我們看看如何利用它來(lái)發(fā)揮優(yōu)勢(shì):

Java

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

另外,如果我們不想修改現(xiàn)有列表,Guava允許我們創(chuàng)建一個(gè)新的過(guò)濾列表:

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)); }

結(jié)論:

在本快速教程中,我們探索了多種方法可以從Java 列表中刪除所有空值 。

成為第一個(gè)發(fā)表評(píng)論的人。

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

總結(jié)

以上是生活随笔為你收集整理的Java –从列表中删除所有空值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。