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 –从列表中删除所有空值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 孝歌歌词 二十四孝孝歌歌词
- 下一篇: java美元兑换,(Java实现) 美元