Kotlin의 목록에서 null 및 빈 값 제거

Kotlin의 목록에서 null, 빈 값, 빈 값을 제거하는 다양한 방법을 살펴봅니다

📚 1
📅 2023-07-21

이 문서에서는 Kotlin의 목록에서 null, 빈 값, 빈 값을 제거하는 다양한 방법을 살펴봅니다.

1. 필터 사용

간단한 솔루션은 필터를 사용하여 Kotlin의 목록에서 null, 비어 있는 값 및 공백 값을 제거하는 것입니다. 그만큼 filter() 함수는 지정된 술어와 일치하는 요소를 유지하고, filterNot() 함수는 지정된 술어와 일치하는 요소를 제거합니다.

목록에서 null 값만 제거하려면 다음 중 하나를 사용할 수 있습니다. filterNotNull() 기능 또는 mapNotNull() 기능, 아래와 같이:

 

1

2

3

4

5

6

7

8

9

fun main() {

    val input = listOf("A", "B", null, "", "C", "D", null, "", "E", " ")

    // 각 println 문은 [A, B, , C, D, , E, ]를 출력합니다.

    println(input.filter { it != null })

    println(input.filterNotNull())

    println(input.mapNotNull { it })

}

 

 
목록에서 null 값과 빈 값을 모두 제거하려면 다음을 사용하는 것이 좋습니다. filterNot() 기능 isNullOrEmpty() 기능. 아래와 같이 목록에서 null 및 빈 값을 제거하는 데 사용할 수 있는 몇 가지 다른 옵션이 있습니다.

 

1

2

3

4

5

6

7

8

9

10

fun main() {

    val input = listOf("A", "B", null, "", "C", "D", null, "", "E", " ")

    // 각 println 문은 [A, B, C, D, E, ]를 출력합니다.

    println(input.filter { it != null && it.isNotEmpty() })

    println(input.filterNotNull().filterNot { it.isEmpty() })

    println(input.filterNotNull().filter { it.isNotEmpty() })

    println(input.filterNot { it.isNullOrEmpty() })

}

 

 

 
목록에서 null, 공백 및 공백 값을 제거하려면 다음을 사용할 수 있습니다. filterNot() 기능 isNullOrBlank() 기능. 다음 코드는 몇 가지 다른 옵션과 함께 사용법을 보여줍니다.

 

1

2

3

4

5

6

7

8

9

10

fun main() {

    val input = listOf("A", "B", null, "", "C", "D", null, "", "E", " ")

    // 각 println 문은 [A, B, C, D, E]를 출력합니다.

    println(input.filter { it != null && !it.isBlank() })

    println(input.filterNotNull().filterNot { it.isBlank() })

    println(input.filterNotNull().filter { it.isNotBlank() })

    println(input.filterNot { it.isNullOrBlank() })

}

 

2. 사용 removeIf() 기능

위의 솔루션은 원본 목록의 복사본을 만듭니다. 다음을 사용하여 원래 목록에서 null, 빈 및 빈 값을 제자리에서 제거할 수 있습니다. removeIf() 기능. 다음 코드 예제는 일반적인 호출을 보여줍니다. removeIf() 지정된 술어를 충족하는 모든 요소를 제거하는 함수입니다.

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

fun main() {

    val input: MutableList<String?> = mutableListOf(

        "A", "B", null, "", "C", "D", null, "", "E", " "

    )

    // null 값 제거

    input.removeIf { it == null }

    println(input) // [A, B, , C, D, , E,  ]

    // 빈 값 제거

    input.removeIf { it!!.isEmpty() }

    println(input) // [A, B, C, D, E,  ]

    // 빈 값 제거

    input.removeIf { it!!.isBlank() }

    println(input) // [A, B, C, D, E]

}

 

결과:

[A, B, , C, D, , E, ]
[A, B, C, D, E, ]
[A, B, C, D, E]
 

이것이 Kotlin의 목록에서 null, 빈 값, 빈 값을 제거하는 것입니다.

이 글과 함께 연습해보세요

읽은 내용을 Play Lab에서 바로 실행해볼 수 있어요.

Coding Quest · 알고리즘

구조물 블록 쌓기 (다중조건 정렬 DP)

가로(w), 세로(d), 높이(h)가 주어진 블록 N개가 있습니다. 회전은 허용하지 않으며, 어떤 블록 위에 다른 블록을 올리려면 위에 놓일 블록의 가로와 세로가 모두 아래 블록보다 작아야 합니다. 각 블록은 최대 한 번만 사용할 수 있을 때, 쌓을 수 있는 탑의 최대 높이(사용한 블록들의 높이 합)를 구하세요.

바로 연습하기
Coding Quest · 알고리즘

구조물 블록 쌓기 (다중조건 정렬 DP)

가로(w), 세로(d), 높이(h)가 주어진 블록 N개가 있습니다. 회전은 허용하지 않으며, 어떤 블록 위에 다른 블록을 올리려면 위에 놓일 블록의 가로와 세로가 모두 아래 블록보다 작아야 합니다. 각 블록은 최대 한 번만 사용할 수 있을 때, 쌓을 수 있는 탑의 최대 높이(사용한 블록들의 높이 합)를 구하세요.

바로 연습하기
Coding Quest · 빈칸

네 장의 합 중 K번째 큰 수

카드 N장에 적힌 정수가 주어집니다. 이 중 서로 다른 위치의 카드 4장을 뽑아 만들 수 있는 합을 모두 구하고(중복 제거), 그 값들을 내림차순 정렬했을 때 K번째 값을 구하세요.

바로 연습하기
Coding Quest · 알고리즘

네 장의 합 중 K번째 큰 수 (전체 구현)

카드 N장에 적힌 정수가 주어집니다. 이 중 서로 다른 위치의 카드 4장을 뽑아 만들 수 있는 합을 모두 구하고(중복 제거), 그 값들을 내림차순 정렬했을 때 K번째 값을 구하세요.

바로 연습하기
Coding Quest · 알고리즘

네 장의 합 중 K번째 큰 수 (전체 구현)

카드 N장에 적힌 정수가 주어집니다. 이 중 서로 다른 위치의 카드 4장을 뽑아 만들 수 있는 합을 모두 구하고(중복 제거), 그 값들을 내림차순 정렬했을 때 K번째 값을 구하세요.

바로 연습하기