본문 바로가기
코틀린

아토믹 코틀린 - 컬렉션에 대한 연산

by 밝지 2023. 10. 31.
728x90
반응형
  • 람다를 사용해 List / MutableList 초기화
fun main() { 
	val list1 = List(10){ it } // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    val list2 = List(10){ 0 } // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    
    val list3 = List(10){ 'a' + it } // [a, b, c, d, e, f, g, h, i, j]
    
    val list4 = List(10){ list3[it % 3] } // [a, b, c, a, b, c, a]
    
    val mutableList1 = MutableList(5){ 10 * (it+1) } // [10, 20, 30, 40, 50]
}

 

  • 다양한 컬렉션 함수
    • any() - 원소 중 어느 하나라도 해당되는 경우 true 반환
    • all() - 모든 원소가 술어와 일치하면 true
    • none() - 술어와 일치하는 원소가 하나도 없으면 true
    • find() - 술어와 일치하는 첫 번째 원소를 반환한다. 원소가 없으면 예외를 던진다.
    • firstOrNull() - 술어와 일치하는 첫 번째 원소를 반환한다. 원소가 없으면 null 반환
    • lastOrNull - 술어와 일치하는 마지막 원소를 반환한다. 없으면 null 반환
    • count() - 술어와 일치하는 원소의 개수를 반환한다.
    • filter() - 해당하는 모든 원소가 들어있는 새 리스트를 만든다.
      • filterNot() 은 해당하지 않는 모든 원소가 들어있는 새 리스트를 만든다.
      • filterNotNull()은 null을 제외한 원소들로 이루어진 새 리스트를 만든다.
      • partition()은 동시에 양쪽 그룹을 만들어낸다.
        • partition()은 List가 들어있는 Pair 객체를 만든다.
fun main() {
	val list = listOf(-3, -1, 5, 7, 10)
    val isPositive = { i: Int -> i > 0  }
    
    list.filter(isPositive) // [5, 7, 10]
    list.filterNot(isPositive) // [-3, -1]
    
    val (pos, neg) = list.partition { it > 0 }
 	pos // [5, 7, 10]
    neg // [-3, -1]
 
}
728x90
반응형