Kotlin集合--arrayOf
34744 ワード
package com.init.demo.demo1
fun main(args: Array) {
var nollStations = arrayOf(" ", " ", "", "", " ", " ", " ", " ", " ",
" ", " ", " ", " ", " ", " ", " ", " ", " ")
println(" nollStations.size:${nollStations.size} nollStations.count():${nollStations.count()}")
println(" 1 nollStations.first():${nollStations.first()}")
println(" 1 nollStations.component1():${nollStations.component1()}")
println(" 2 nollStations.component2():${nollStations.component2()}")
println(" 3 nollStations.component3():${nollStations.component3()}")
println(" 4 nollStations.component4():${nollStations.component4()}")
println(" 5 nollStations.component5():${nollStations.component5()}")
println(" 1 ollStations.last():${nollStations.last()}")
println(" nollStations[x]:${nollStations[10]}")
println(" nollStations.contains():${nollStations.contains(" ")}")
println(" nollStations.find { it.contains() }:${nollStations.find { it.contains(" ") }}")
println(" nollStations.findLast { it.contains() }:${nollStations.findLast { it.contains(" ") }}")
println(" nollStations.joinToString():${nollStations.joinToString()}")
println(" , nollStations.joinToString{}:${nollStations.joinToString { it + " " }}")
/**
* separator :
* prefix:
* limit :
*/
println(" ,nollStations." +
"joinToString() :${nollStations.joinToString(separator = "->", prefix = " 3 :", limit = 4)}")
println(" x nollStations.drop(x):${nollStations.drop(4)}")
println(" ollStations.dropWhile{}:${nollStations.dropWhile { it.isNotEmpty() }}")
println(" x nollStations.dropLast(x):${nollStations.dropLast(10)}")
println(" nollStations.dropLastWhile{}:${nollStations.dropLastWhile { it.isNotEmpty() }}")
println(" x nollStations.take(x):${nollStations.take(4)}")
println(" x nollStations.takeLast(x):${nollStations.takeLast(4)}")
println(" -- nollStations.sliceArray(2..5).joinToString():${nollStations.sliceArray(2..5).joinToString()}")
println(" 1-- nollStations.reversed().joinToString():${nollStations.reversed().joinToString()}")
println(" 2-- nollStations.reversedArray().joinToString():${nollStations.reversedArray().joinToString()}")
println("********************************************** ****************************************************")
val numbers = arrayOf(0, -9, 10, 5, 89, 26, 34)
println(" - numbers.sorted().joinToString():${numbers.sorted().joinToString()}")
println(" - numbers.sorted().joinToString():${numbers.sortedArrayDescending().joinToString()}")
println(" - nollStations.sortedBy{}:${nollStations.sortedBy { s -> s.length }}")
println(" - nollStations.sortedBy{it.length}:${nollStations.sortedBy { it.length }}")
println(" - nollStations.sortedByDescending{}:${nollStations.sortedByDescending { s -> s.length }}")
println(" - nollStations.sortedByDescending{it.length}:${nollStations.sortedByDescending { it.length }}")
println(" numbers.map {}:${numbers.map { it -> " :" + it }}")
println(" numbers.filter{}:${numbers.filter { it % 2 == 0 }}")
println(" numbers.max():${numbers.max()}")
println(" {numbers.min():${numbers.min()}")
println(" nollStations.maxBy { s->s.length }:${nollStations.maxBy { s -> s.length }}")
println(" nollStations.minBy { s->s.length }:${nollStations.minBy { s -> s.length }}")
println(" nollStations.distinctBy { s->s.length }:${nollStations.distinctBy { s -> s.length }}")
println(" nollStations.distinct():${nollStations.distinct()}")
println("********************************************** ****************************************************")
println(" >0-numbers.all { it > 0}:${numbers.all { it > 0 }}")
println(" <0-numbers.any { it< 0}:${numbers.any { it < 0 }}")
//all any ,all true,any true,none true
println(" ==0-numbers.none { it == 0}:${numbers.none { it == 0 }}")
println("********************************************** ****************************************************")
println(" numbers.sum():${numbers.sum()}")
println(" +100_000 numbers.sum{0_000 + it}:${numbers.sumBy { 10_000 + it }}")
println(" numbers.average():${numbers.average()}")
println("********************************************** ****************************************************")
/**
* s1
* s2
* joinToString()
* reduce reduceRight
* fold reduce foldRight reduceRight
*/
println(" nollStations.reduce{ s1, s2 -> s1 + \",\" + s2 }:${nollStations.reduce{ s1, s2 -> s1 + "," + s2 }}")
println(" , nollStations.reduceRight{ s1, s2 -> s1 + \",\" + s2 }:${nollStations.reduceRight{ s1, s2 -> s1 + "," + s2 }}")
println(" , nollStations.fold(\"fold:\"){ s1, s2 -> s1 + \",\" + s2 }:${nollStations.fold("fold:"){ s1, s2 -> s1 + "-" + s2 }}")
println(" , nollStations.fold(\"foldRight:\"){ s1, s2 -> s1 + \",\" + s2 }:${nollStations.foldRight("foldRight:"){ s1, s2 -> s1 + "-" + s2 }}")
println("********************************************** ****************************************************")
val numbers2 = arrayOf(1,23,5,89,-5,8,-78)
val newStations = arrayOf(" "," "," "," ")
val twoNumbers = numbers.plus(numbers2)
val twoStations = nollStations.plus(newStations)
println(twoNumbers.joinToString())
println(twoStations.joinToString())
// + , plus
println((nollStations+newStations).joinToString())
println((numbers+numbers2).joinToString())
//zip
println((numbers+numbers2).zip(nollStations+newStations))
//zip
println((numbers+numbers2).zip((nollStations+newStations)){s1, s2 -> "$s1" + ":" + s2 })
}
出力結果:
要素数nollStations.size:18または要素数nollStations.count():18番目のnollStations.first():江北空港1番目nollStations.component 1():江北空港2番目nollStations.component 2():2つ目のnollStations.component 3():4番目のnollStations.component 4():5番目のnollStations.component 5():金童路最後のollStations.last():魚洞の他の要素の取り出しnollStations[x]:牛角沱はある要素nollStationsを含むかどうかを検査する.contains():true検索要素nollStations.find{it.contains():4キロで最後の一致要素を検索nollStations.findLast{it.contains()}:要素カンマ分割形式の文字列nollStationsを9キロ出力する.joinToString():江北空港、2つの道路、金童路、重慶北駅南広場、龍頭寺、獅子坪、赤旗河溝、観音橋、牛角沱、2つの交差点、工毛、銅元局、南平、4キロ、9キロ、魚洞は1つの要素のカンマの分割式の文字列を出力して、末尾に文字nollStationsを追加します.joinToString{}:江北空港駅、2つの駅、駅、駅、金童路駅、重慶北駅南広場駅、龍頭寺駅、獅子坪駅、赤旗河溝駅、観音橋駅、牛角沱駅、2つの交差点駅、工毛駅、銅元局駅、南平駅、4キロ駅、九公里駅、魚洞駅は要素のカンマ分割形式の文字列を出力し、nollStations.joinToString()バージョン強化関数:ライトレール3号線:江北空港->2ウェイ->前のx要素を破棄nollStationsを破棄する.drop(x):[金童路、重慶北駅南広場、龍頭寺、獅子坪、赤旗河溝、観音橋、牛角沱、両交差点、工毛、銅元局、南平、4キロ、9キロ、魚洞]前の空ではない要素を捨てollStations.dropWhile{}:[,金童路,重慶北駅南広場,龍頭寺,獅子坪,赤旗河溝,観音橋,牛角沱,両交差点,工毛,銅元局,南平,4キロ,9キロ,魚洞]最後のx要素nollStationsを捨てる.dropLast(x):[江北空港、2つのルート、金童路、重慶北駅南広場、龍頭寺、獅子坪]最後に空ではない要素を捨ててnollStations.dropLastWhile{}:[江北空港、2つのルート、]前のx要素を取り出してnollStationsを捨てる.take(x):[江北空港、二路,]後ろのx要素を取り出してnollStationsを捨てる.takeLast(x):[南平、4キロ、9キロ、魚洞]切断配列--指定範囲内の要素nollStationsを取り出す.sliceArray(2..5).joinToString():,金童路,重慶北駅南広場配列反転1--自身の要素の首尾をnollStations.reversed().joinToString():魚洞、9キロ、4キロ、南平、銅元局、工毛、2つの交差点、牛角沱、観音橋、赤旗河溝、獅子坪、竜頭寺、重慶北駅南広場、金童路、2つの道路、江北空港配列反転2--自身の要素の最初の順序をnollStations.reversedArray().joinToString():魚洞、九キロ、四キロ、南平、銅元局、工毛、両交差点、牛角沱、観音橋、赤旗河溝、獅子坪、龍頭寺、重慶北駅南広場、金童路、二路、江北空港********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************sorted().joinToString():-9,0,5,10,26,34,89配列ソート-降順numbers.sorted().joinToString():89,34,26,10,5,0,-9地下鉄名は長さ順-昇順nollStations.sortedBy{}:[,2つの道路、工毛、南平、魚洞、金童路、龍頭寺、獅子坪、観音橋、牛角沱、2つの交差点、銅元局、4キロ、9キロ、江北空港、赤旗河溝、重慶北駅南広場]地下鉄名は長さ順にソート-昇順nollStations.sortedBy{it.length}:[,2つの道路、工毛、南平、魚洞、金童路、龍頭寺、獅子坪、観音橋、牛角沱、2つの交差点、銅元局、4キロ、9キロ、江北空港、赤旗河溝、重慶北駅南広場]地下鉄名は長さ順にソート-降順nollStations.sortedByDescending{}:[重慶北駅南広場、江北空港、赤旗河溝、金童路、龍頭寺、獅子坪、観音橋、牛角沱、両交差点、銅元局、4キロ、9キロ、両路、工毛、南平、魚洞、]地下鉄名は長さ順-降順nollStations.sortedByDescending{it.length}:[重慶北駅南広場、江北空港、赤旗河溝、金童路、龍頭寺、獅子坪、観音橋、牛角沱、両交差点、銅元局、4キロ、9キロ、2つの道路、工毛、南平、魚洞]デジタル型配列は文字列配列に変換され、接頭辞numbersが付けられた.map{}:[数字:0、数字:-9、数字:10、数字:5、数字:89、数字:26、数字:34]デジタル型配列フィルタnumbers.filter{}:[0,10,26,34]デジタル配列最大値numbers.max():89数字型配列最小値{numbers.min():-9地下鉄名最長の要素nollStations.maxBy{s->s.length}:重慶北駅南広場地下鉄名最小の要素nollStations.minBy{s->s.length}:地下鉄名の長さが異なる要素nollStations.distinctBy{s->s.length}:[江北空港、2つのルート、金童路、重慶北駅南広場]重複要素を削除する新しい配列nollStationsを返します.distinct():[江北空港、2つの道路、金童路、重慶北駅南広場、龍頭寺、獅子坪、赤旗河溝、観音橋、牛角沱、2つの交差点、工毛、銅元局、南平、4キロ、9キロ、魚洞]****************************************************************************************************************************************************************************************************************************************************************************************************************************************************all{it>0}:false配列の数値に要素が<0-numbers.any{it<0}:true配列の数値のすべての要素=0-numbers.none{it===}:false********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************sum():155配列の数値各要素+100_000合計numbers.sum{0_000+it}:70155配列の数値平均numbers.AVerage():22.1428571428572142****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************reduce{s 1,s 2->s 1+","+s 2}:江北空港、2つの道路、、、金童路、重慶北駅南広場、龍頭寺、獅子坪、赤旗河溝、観音橋、牛角沱、2つの交差点、工毛、銅元局、南平、4キロ、9キロ、魚洞はすべての要素を1つの値に統合し、またnollStationsを計算し始めた.reduceRight{s 1,s 2->s 1+","+s 2}:江北空港、2つの道路、、、金童路、重慶北駅南広場、龍頭寺、獅子坪、赤旗河溝、観音橋、牛角沱、2つの交差点、工毛、銅元局、南平、4キロ、9キロ、魚洞はすべての要素を1つの値に統合し、またnollStationsを計算し始めた.fold("fold:"){s 1,s 2->s 1+","+s 2}:fold:-江北空港-二路---金童路-重慶北駅南広場-龍頭寺-獅子坪-赤旗河溝-観音橋-牛角沱-両交差点-工毛-銅元局-南平-四キロ-九キロ-魚洞はすべての要素を一つの値に統合し、またnollStationsを計算し始めた.fold("foldRight:"){s 1,s 2->s 1+","+s 2}:江北空港-二路---金童路-重慶北駅南広場-龍頭寺-獅子坪-赤旗河溝-観音橋-牛角沱-両交差点-工毛-銅元局-南平-四キロ-九キロ-魚洞-foldRight:********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************-78江北空港、2つの道路、、金童路、重庆北駅南広场、龙头寺、狮子坪、赤旗河沟、観音桥、牛角沱、2つの交差点、工毛、铜元局、南平、4キロ、9キロ、鱼洞、七星岗、小何字、解放碑、石橋敷江北空港、2つの道路、金童路、重庆北駅南広场、龙头寺、狮子坪、赤旗河沟、観音桥、牛角沱、2つの交差点、工毛、铜元局、南平、4キロ、九キロ、魚洞、七星岡、小何字、解放碑、石橋舗0、-9、10、5、89、26、34、1、23、5、89、-5、8、-78[(0,江北空港),(-9,両路),(10,),(5,),(89,金童路),(26,重慶北駅南広場),(34,竜頭寺),(1,獅子坪),(23,赤旗河溝),(5,観音橋),(89,牛角沱),(-5,両交差点),(8,工毛),(-78,銅元局)][0:江北空港、-9:2番、10:5:89:金童路、26:重慶北駅南広場、34:龍頭寺、1:獅子坪、23:赤旗河溝、5:観音橋、89:牛角沱、-5:2交差点、8:工毛、-78:銅元局]Process finished with exit code 0