[完全征服コトリン]配列


アレイの作成


コトリンでアレイを生成するために、arrayOfおよびArrayを使用することができる.空の配列を生成するには、arrayOfNullsを使用します.ArrayOfはパラメータとして配列に入れるデータを受信する.Arrayはデータの個数と初期値をパラメータとして受け入れる.次のコードを見てください.
import java.util.*

fun main(args: Array<String>) {
    val array1 = arrayOf(1, 2, 3, 4, 5)
    println(array1)
    println(Arrays.toString(array1))

    val array2 = Array(5) { i -> i * i }
    println(array2)
    println(Arrays.toString(array2))
}
array 1はarrayOfキーワードを用いて配列を生成する.パラメータとして配列に入れるデータのみを受信します.array 2はArrayを用い,データの個数と初期値をパラメータとした.因子は람다식であった.次の出力結果が表示されます.
파이썬では、印刷(array 1)するとアレイ内部の要素が表示され、코틀린ではそうではありません.単純出力配列は配列のアドレス値を出力します.配列内の要素を出力するにはjavaを使用します.utilパッケージをインポートするにはArrays.toStringを使用します.また、contentToStringを使用しても同様の結果が出力されます.△個人的にはcontentToStringの方が便利だと思います.
import java.util.*

fun main(args: Array<String>) {
    val array1 = arrayOf(1, 2, 3, 4, 5)
    println(array1)
    println(array1.contentToString())

    val array2 = Array(5) { i -> i * i }
    println(array2)
    println(array2.contentToString())
}

配列の整列


そのまま並べ替えられた新しい配列を返します

원본 배열は、sortArrayおよびsortArrayDescendingを使用して、並べ替えられた新しい配列を返す.
import java.util.*

fun main(args: Array<String>) {
    val array1 = arrayOf(5, 4, 3, 2, 1)
    val sortedArray1 = array1.sortedArray() // 오름차순으로 정렬
    println(sortedArray1.contentToString())

    val array2 = Array(5) { index -> index * index }
    val sortedArray2 = array2.sortedArrayDescending() // 내림차순으로 정렬
    println(sortedArray2.contentToString())
}

カテゴリの整列


元のアレイをソートするために、Arrayキーワードを省略したsortおよびsortDescendingが使用される.パラメータにfromIndex、toIndexを配置できます.パラメータを省略すると、要素全体に適用されます.また,元の配列を並べ替えたため,値は返されなかった.
import java.util.*

fun main(args: Array<String>) {
    val array1 = arrayOf(5, 4, 3, 2, 1)
    array1.sort()
    println(array1.contentToString())

    // sort와 sortDesending은 리턴값이 없어서 아래 코드의 경우 Unit이 출력된다.
    val sortedArray1 = array1.sort()
    println(sortedArray1)
}

配列からリストを返す


配列とは異なり、リストは要素を挿入および削除できます.後でさらに説明し、レイアウトをリストに戻します.このときArrayキーワードを省略したsortedsortedDescendingを用いる.
import java.util.*

fun main(args: Array<String>) {
    val array1 = arrayOf(5, 4, 3, 2, 1)
    val sortedList : List<Int> = array1.sorted()
    println(sortedList)
}
配列とは異なり、リストはcontentToStringやtoStringを必要とせずに内部の要素を出力できます.

sortByを使用してパラメータでソート


配列データとして名前と年齢を持つPersonオブジェクトを持つPerople Arrayオブジェクトがある場合、または名前または年齢順にソートしたい場合、どうすればいいですか?この場合、sortByおよびsortDescendingを使用することができる.
import java.util.*

data class Person(val name: String, val age: Int)

fun main(args: Array<String>) {
    val People = arrayOf(
        Person("고도현", 20),
        Person("황철순", 30),
        Person("김강민", 35),
        Person("홍길동", 12),
    )
    println(People.contentToString())
    People.sortBy { it.age } // 나이에 따라 오름차순으로 정렬
    println(People.contentToString())
    People.sortBy { it.name } // 이름에 따라 오름차순으로 정렬
    println(People.contentToString())
}
しかしsortByとsortByDescendingはパラメータとしてram多項式を持つため,複数のパラメータをソートすることはできない.このときsortWithを使用します.

sortWithを使用して複数のパラメータでソート

sortWithComparatorを因子とする.compareByを用いて、様々な因子に従ってソートすることができる.
import java.util.*

data class Person(val name: String, val age: Int)

fun main(args: Array<String>) {
    val People = arrayOf(
        Person("고도현", 20),
        Person("황철순", 30),
        Person("김강민", 35),
        Person("홍길동", 12),
    )
    People.sortWith(compareBy({ it.name }, { it.age })) // 이름 오름차순 정렬 후 나이 오름차순 정렬
    println(People.contentToString())
    People.sortWith(compareBy({ it.age }, { it.name })) // 나이 오름차순 정렬 후 이름 오름차순 정렬
    println(People.contentToString())
}

整理する


2479142および2479142が存在する場合は配列に戻り、2479142が存在する場合はリストに戻り、貼り付けがない場合はソースをソートします.
  • の戻り値はありますか?
  • ソートアレイ/ソートアレイ設計(リターンアレイ)
  • ソート/ソート設計(リストを返す)
  • ソートBy/SortedByDesting(1つのパラメータでソートしてリストに戻る)
  • 並べ替えArrayWith(2つ以上のパラメータに従って並べ替えた後にアレイに戻る)
  • sortedWith(複数のパラメータに従って並べ替えてリストに戻る)
  • 戻り値
  • はありませんか?(対斉源)
  • sort/sortDesting(ソート)
  • sortBy/sortByDesting(1つのパラメータでソート)
  • sortWith(複数のパラメータでソート)