programing

Groovy의 목록에서 Null 항목 제거

coolbiz 2021. 1. 16. 10:15
반응형

Groovy의 목록에서 Null 항목 제거


Groovy의 목록에서 null 항목을 제거하는 가장 좋은 방법은 무엇입니까?

전의: [null, 30, null]

반환하고 싶다 : [30]


원래 목록을 유지하고 싶지 않은 경우 여기에 답변이 있습니다.

void testRemove() {
    def list = [null, 30, null]

    list.removeAll([null])

    assertEquals 1, list.size()
    assertEquals 30, list.get(0)
}

편리한 멋쟁이 단위 테스트에서


마이너스를 사용하십시오.

[null, 30, null] - null

findAll 메소드는 필요한 작업을 수행해야합니다.

​[null, 30, null]​.findAll {it != null}​

다른 "거짓"값도 사라지는 것을 염두에 두지 않는다고 가정하면 이것이 가장 짧다는 것을 알게 될 것입니다.

println([null, 30, null].findAll())

public Collection findAll () IDENTITY 클로저와 일치하는 항목을 찾습니다 (즉, Groovy 진실과 일치). 예:

def items = [1, 2, 0, false, true, '', 'foo', [], [4, 5], null] assert items.findAll () == [1, 2, true, 'foo' , [4, 5]]


이것은 grep에 의해서도 가능합니다 :

assert [null, 30, null].grep()​ == [30]​

또는

assert [null, 30, null].grep {it}​ == [30]​

또는

assert [null, 30, null].grep { it != null } == [30]​

간단히 [null].findAll{null != it}경우 it는 새 컬렉션에 존재하지 않도록 널 그때는 false를 돌려줍니다.


이것은 모든 null 항목을 제자리에서 제거합니다.

myList.removeAll { !it }

도메인에 숫자 0이 있으면 null을 확인할 수 있습니다.

myList.removeAll { it == null }

이를 수행하는 또 다른 방법은 [null, 20, null].findResults{it}.

참조 URL : https://stackoverflow.com/questions/3285241/remove-null-items-from-a-list-in-groovy

반응형