私のKotlinコレクションをstdlibに組み込まれていないものに収めたいのですが、どうすればいいですか?Java Stream.collectのKotlinに相当するものは何ですか?
9
A
答えて
12
組み込み操作toList()
などでカバーされていないシナリオの場合、collectは単なる折り畳みであるという事実を使うことができます。だから、あなたはその後、拡張機能
fun <T, R> Iterable<T>.collectTo(accumulator: R, accumulation: (R, T) -> Unit) =
this.fold(accumulator, { accumulator, item -> accumulation(accumulator, item); accumulator })
を定義する場合は、さらに簡素化することができ
val list: List<Pair<String, Int>> = listOf("Ann" to 19, "John" to 23)
はあなたが倍
val map: Map<String, Int> = list.fold(HashMap(), { accumulator, item ->
accumulator.put(item.first, item.second); accumulator})
でお好みのコレクションに収集することができます与えられた
val map2: Map<String, Int> = list.collectTo(HashMap(), { accumulator, item ->
accumulator.put(item.first, item.second) })
Althouもちろん、この場合は、.toMap
拡張機能を使用するだけで済みます。
4
注:あなたは、あなたがKotlinに既存のSTDLIB機能を使用できるJava 8からStream.collect
を使用することになり、いくつかの一般的な例については。 Kotlinで見つけることができないものについては、@ duncanの答えに記述されているカスタムフローの作成を探ることができます。この回答は、stdlib内で何ができるかを知るために追加されているので、カスタムを書くタイミングを決めることができます。 "Java Stream.collectのKotlinに相当するものは何ですか?"
/アレイから、へ/リストからの平均、カウント、別個の、フィルタリング、発見、グループ化、接合、マッピング、MIN、MAX、分割、切断用STDLIBにおける機能、ソート、加算は、あります、地図、組合、共反復、すべての機能的パラダイムなどに/から。リトル1ライナーとJava 8のより複雑な構文を使用する必要はありません。内蔵のJava 8 Collectors
クラスから唯一欠けているものは、要約です。 What Java 8 Stream.collect equivalents are available in the standard Kotlin library?
関連する問題
- 1. Kotlinの関数型のjavaに相当するものは何ですか?
- 2. Debugger.Launch()のJavaに相当するものは何ですか?
- 3. Regexp :: AssembleのJavaに相当するものは何ですか?
- 4. javaの:: operatorに相当するものは何ですか?
- 5. java androidのNSOperationQueueに相当するものは何ですか?
- 6. curlコマンドのjavaに相当するものは何ですか?
- 7. Java Akkaのスカラコンパニオンオブジェクトに相当するものは何ですか?
- 8. SwiftのJava Objectに相当するものは何ですか?
- 9. C#でLinkedHashSet(Java)に相当するものは何ですか?
- 10. Scalaコードスニペット - Java 8に相当するものは何ですか?
- 11. このpythonイテレータに相当するkotlinイディオムは何ですか
- 12. JavaのString.getBytes()のKotlin相当
- 13. iOSフレームワークでLinkedListに相当するものは何ですか?
- 14. .NETの "ByteBuffer.flip"& "ByteBuffer.slice"に相当するものは何ですか?
- 15. C#でのJavaのデフォルト(パッケージ)アクセスに相当するものは何ですか?
- 16. C#でJavaのSimpleDateFormatクラスに相当するものは何ですか?
- 17. Javaでこの構文に相当するものは何ですか?
- 18. Java 8のjava.util.function.Consumer <>のC#に相当するものは何ですか?
- 19. 次のJavaペイントコードのAndroidに相当するものは何ですか?
- 20. JavaのgetClass()、isAssignableFrom()などのC#に相当するものは何ですか?
- 21. TkinterのJava SwingのJTabbedPaneに相当するものは何ですか?
- 22. JavaのSystem.nanoTime()のiOSに相当するものは何ですか?
- 23. JavaのUnsupportedOperationExceptionのPythonに相当するものは何ですか?
- 24. [Android] JavaのVB.NETの静的キーワードに相当するものは何ですか?
- 25. JavaのLocale.ROOTとLocale.getDefault()のC#に相当するものは何ですか?
- 26. JavascriptのJavaのSystem.out.println()に相当するものは何ですか?
- 27. C#のJavaのstring.getBytes()に相当するものは何ですか?
- 28. AssertJライブラリのKotlinに相当するものはありますか?
- 29. android xmlに相当するものは何ですか?
- 30. JavaのJavascript関数クロージャに相当するものは何ですか?
関連:
別のSOポストは詳細にこれらの等価性があるカバーhttp://stackoverflow.com/questions/34642254 –