[Kotlin]Mapソート
HashMapまたはMapのソート方法 LinkedHashMapを使用して をソート TreeMapを使用して をソートリストを使用して をソート SortedMapソート LinkedHashMapソートの使用
LinkedHashMapは、Mapに順序が入力されていることを確認するクラスです.HashMapを所望の順序で並べ替え、LinkedHashMapをこの順序で再入力すると、並べ替え順に出力できます.
Sort by key
鍵または値をListにインポートしてソートすることもできます.2つのタイプのうち1つだけをソートする場合は、次の方法を使用します.
Sort by key
次のコードは、キーを含むリストを昇順に並べます.
Sort by Value
次のコードは、Valueを含むリストを昇順に並べています.
TOSortedMap()関数を使用してMapをソートできます.sortedMapはキーソートのMapであり、Comparatorを使用して必要な条件を指定することもできます.
Java Mapをソートする様々な方法
間違った部分にコメントを残したら修正します…!!
LinkedHashMapは、Mapに順序が入力されていることを確認するクラスです.HashMapを所望の順序で並べ替え、LinkedHashMapをこの順序で再入力すると、並べ替え順に出力できます.
Sort by key
Map.Entry
をリストにインポートし、キー値をソートしてLinkedHashMapにソート順に追加します.コードは次のとおりです.fun sortMapByKey(map: Map<String, String>): LinkedHashMap<String, String> {
val entries = LinkedList(map.entries)
entries.sortBy { it.key }
val result = LinkedHashMap<String, String>()
for(entry in entries) {
result[entry.key] = entry.value
}
return result
}
fun main() {
val map = LinkedHashMap<String, String>()
map["Korea"] = "Seoul"
map["Japan"] = "Tokyo"
map["America"] = "New york"
map["England"] = "London"
map["Canada"] = "Ottawa"
val sortedMap = sortMapByKey(map)
// key(String)에 따른 정렬
for((key, value) in sortedMap.entries) {
println("Key : $key, value : $value")
}
}
結果(Key昇順)Key : America, value : New york
Key : Canada, value : Ottawa
Key : England, value : London
Key : Japan, value : Tokyo
Key : Korea, value : Seoul
Sort by ValueMap.Entry
をリストにインポートし、値でソートし、LinkedHashMapにソート順に追加します.コードは次のとおりです.fun sortMapByKey(map: Map<String, String>): LinkedHashMap<String, String> {
val entries = LinkedList(map.entries)
entries.sortBy { it.value }
val result = LinkedHashMap<String, String>()
for(entry in entries) {
result[entry.key] = entry.value
}
return result
}
fun main() {
val map = LinkedHashMap<String, String>()
map["Korea"] = "Seoul"
map["Japan"] = "Tokyo"
map["America"] = "New york"
map["England"] = "London"
map["Canada"] = "Ottawa"
val sortedMap = sortMapByKey(map)
// key(String)에 따른 정렬
for((key, value) in sortedMap.entries) {
println("Key : $key, value : $value")
}
}
結果(価値の増加)Key : England, value : London
Key : America, value : New york
Key : Canada, value : Ottawa
Key : Korea, value : Seoul
Key : Japan, value : Tokyo
TreeMapソートの使用TreeMap
は、アイテムの追加時に設定されたComparatorごとにソートおよび格納されるクラスである.したがって、値を追加した後に並べ替える必要はありません.次のコードのようにTreeMapを作成できます.パラメータを指定しない場合は、デフォルトでkeyソートが使用されます.map = TreeMap<String, String>()
map["Korea"] = "Seoul"
map["Japan"] = "Tokyo"
map["America"] = "New york"
map["England"] = "London"
map["Canada"] = "Ottawa"
// key(String)에 따른 정렬
for((key, value) in map.entries) {
println("Key : $key, value : $value")
}
結果(キーの昇順)Key : America, value : New york
Key : Canada, value : Ottawa
Key : England, value : London
Key : Japan, value : Tokyo
Key : Korea, value : Seoul
必要に応じてcomparatorを指定してソートすることもできます.次のようにします.ただし、TreeMapは値をソートしないので、キーをソートするだけです.map = TreeMap<String, String>(compareBy<String?> { it }.reversed())
map["Korea"] = "Seoul"
map["Japan"] = "Tokyo"
map["America"] = "New york"
map["England"] = "London"
map["Canada"] = "Ottawa"
// key(String)에 따른 정렬
for((key, value) in map.entries) {
println("Key : $key, value : $value")
}
結果(keyベースの降順)Key : Korea, value : Seoul
Key : Japan, value : Tokyo
Key : England, value : London
Key : Canada, value : Ottawa
Key : America, value : New york
リスト・ソートの使用鍵または値をListにインポートしてソートすることもできます.2つのタイプのうち1つだけをソートする場合は、次の方法を使用します.
Sort by key
次のコードは、キーを含むリストを昇順に並べます.
val map = HashMap<String, String>()
map["Korea"] = "Seoul"
map["Japan"] = "Tokyo"
map["America"] = "New york"
map["England"] = "London"
map["Canada"] = "Ottawa"
val keyList = ArrayList(map.keys)
// comparator를 사용한 정렬
// keyList.sortWith(compareBy<String?> { it }.reversed())
// default 정렬
keyList.sort()
for(key in keyList) {
println("Key : $key")
}
結果(Key昇順)Key : America
Key : Canada
Key : England
Key : Japan
Key : Korea
上記のコードはsort()を使用してデフォルトのソートを実行しますが、sortWith関数を使用してcomparatorとしてパラメータを使用する場合は、必要な条件を使用してソートを実行できます.Sort by Value
次のコードは、Valueを含むリストを昇順に並べています.
val map = HashMap<String, String>()
map["Korea"] = "Seoul"
map["Japan"] = "Tokyo"
map["America"] = "New york"
map["England"] = "London"
map["Canada"] = "Ottawa"
val valueList = ArrayList(map.values)
// comparator를 사용한 정렬
// valueList.sortWith(compareBy<String?> { it }.reversed())
// default 정렬
valueList.sort()
for(value in valueList) {
println("Value : $value")
}
結果(価値の増加)Value : London
Value : New york
Value : Ottawa
Value : Seoul
Value : Tokyo
sortedMapソートの使用TOSortedMap()関数を使用してMapをソートできます.sortedMapはキーソートのMapであり、Comparatorを使用して必要な条件を指定することもできます.
val map = HashMap<String, String>()
map["Korea"] = "Seoul"
map["Japan"] = "Tokyo"
map["America"] = "New york"
map["England"] = "London"
map["Canada"] = "Ottawa"
val sortedMap = map.toSortedMap()
// Comparator를 인자로 주어 조건 명시
// val sortedMap = map.toSortedMap(compareBy<String> { it }.reversed())
for((key, value) in sortedMap) {
println("Key : $key, Value : $value")
}
結果(Key昇順)Key : America, Value : New york
Key : Canada, Value : Ottawa
Key : England, Value : London
Key : Japan, Value : Tokyo
Key : Korea, Value : Seoul
リファレンスJava Mapをソートする様々な方法
間違った部分にコメントを残したら修正します…!!
Reference
この問題について([Kotlin]Mapソート), 我々は、より多くの情報をここで見つけました https://velog.io/@changhee09/Kotlin-Map-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol