관리 메뉴

피터의 개발이야기

[Kotlin] Entity list에서 id 추출하기 본문

Programming/Kotlin

[Kotlin] Entity list에서 id 추출하기

기록하는 백앤드개발자 2024. 7. 22. 10:10
반응형

ㅁ 들어가며

Kotlin에서 엔티티 리스트에서 ID만 추출하여 새로운 리스트를 만드는 방법을 정리하였다.

 

ㅁ 엔티티 예제 코드

// 엔티티 클래스가 다음과 같다고 가정
data class Entity(val id: Long, val name: String)

// 엔티티 리스트가 있다고 가정
val entityList: List<Entity> = listOf(
    Entity(1, "First"),
    Entity(2, "Second"),
    Entity(3, "Third")
)

// ID만 추출하여 새로운 리스트 만들기
val idList: List<Long> = entityList.map { it.id }

// 또는 더 명시적으로 entity 주입받기
val idList: List<Long> = entityList.map { entity -> entity.id }

ㅇ map 함수를 사용하여 각 엔티티에서 ID를 추출한다.

ㅇ 결과는 ID 타입(여기서는 Long)의 리스트이다.

ㅇ 만약 nullable한 ID를 처리해야 하거나, null이 아닌 ID만 추출하고 싶다면 다음과 같이 할 수 있다.

 

ㅁ NULL이 아닌 리스트만 추출

// ID가 nullable인 경우
data class Entity(val id: Long?, val name: String)

// null이 아닌 ID만 추출
val nonNullIdList: List<Long> = entityList.mapNotNull { it.id }

ㅇ mapNotNull은 null이 아닌 결과만 포함하는 새 리스트를 생성한다.

 

ㅁ 메모리 최적화

// ArrayList를 직접 사용하여 메모리 할당을 최적화
val idList: List<Long> = ArrayList<Long>(entityList.size).apply {
    for (entity in entityList) {
        add(entity.id)
    }
}


ㅇ 리스트 크기를 미리 알고 있을 때 리스트의 사이지를 지정하여 메모리 할당을 최적화할 수 있다.

반응형
Comments