[完全征服コトリン]配列
アレイの作成
コトリンでアレイを生成するために、
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キーワードを省略した
sorted
とsortedDescending
を用いる.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を使用して複数のパラメータでソート
sortWith
はComparator
を因子とする.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が存在する場合はリストに戻り、貼り付けがない場合はソースをソートします.
Reference
この問題について([完全征服コトリン]配列), 我々は、より多くの情報をここで見つけました https://velog.io/@k906506/코틀린-완전정복-배열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol