Kotlin 코테 대비

Deque

  • import kotlin.collections.ArrayDeque를 하여 사용하여야 한다.
import kotlin.collections.ArrayDeque

fun main() {
	val queue = ArrayDeque<Int>()
    
    queue.add(1) // append(1)와 동일
    queue.addFirst(2) // appendleft(2)와 동일
    
    queue.removeFirst() // popleft()와 동일
    queue.remove() // pop()과 동일
}

정렬

1. Sorted

  • 데이터 변경이 안되는 Immutable Type 변수 정렬시 사용
  • Sorted는 원본을 변경하지 않고 정렬된 리스트를 생성하여 리턴함.
fun main(args: Array<String>){
    val test = intArrayOf(50,10,30,20,40)
    val sorted = test.sorted()
    println("sorted: $sorted")
}

// sorted : [10,20,30,40,50]

2. Sort

  • 데이터 변경이 가능한 Mutable Type 변수 정렬시 사용
  • 리스트 자신이 갖고 있는 원소의 순서를 변경한다.
fun main(args: Array<String>){
    var test = mutableListOf(50,10,30,20,40)
    test.sort()
    println("sort: $test")
}

// sorted : [10,20,30,40,50]

3. reversed(), reverse()

  • reversed(), reverse()을 통해 Collection을 역순으로 변경할 수 있다
  • reversed() : Immutable Type의 Collection에서 사용하며, 역순으로 변경된 Collection을 생성하고 리턴
  • reverse() : Mutable Type의 Collection에서 사용하며, 리스트 자신의 요소를 반대로 변경
fun main(args: Array<String>){
	val test = listOf(50,10,30,20,40)
    var test2 = mutableListOf(50,10,30,20,40)
    
    val test1 = test.sorted().reversed()
    test2.sort().reverse()
    
    println("test1: $test1")
    pinntln("test2: $test2")
}

// test1 : [50,40,30,20,10]
// test2 : [50,40,30,20,10]

4. sortedBy(),sortBy()

  • Collection의 원소가 1개의 데이터 타입이 아닌 경우에는 sortedBy(), sortBy()를 통해 어떤 객체를 기준으로 정렬할지 결정할 수 있다.
  • sortedBy() : Immutable Type의 Collection에서 사용
  • sortBy() : Mutable Type의 Collection에서 사용
data class Stock(val name : String, val price : Int)

fun main(args: Array<String>){
    var stockList = listOf(
        Stock("A", 1000),
        Stock("B", 5000),
        Stock("C", 3000),
        Stock("D", 2000)
    )
    
    stockList.sortBy {it.price}
    println("stockList Sort By Price" : "$dogList")
    stockList.sortBy {it.name}
    println("stockList Sort By Name" : "$dogList")
    
    // stockList Sort By Price : Stock("A",1000), Stock("D",2000), Stock("C",3000), Stock("B", 5000)
    // stockList Sort By Name : Stock("A",1000), Stock("B",5000), Stock("C",3000), Stock("D", 2000)
}

좋은 웹페이지 즐겨찾기