2016-09-06 15 views
1

私はKotlinがコレクションを実装するためのいくつかのインターフェイスを提供していることが分かります。それらはthis pageに記載されています。Kotlinはコレクションインターフェイスの実装を提供していますか?

私はKotlinによって提供されたこれらの実装は表示されません。

しかし、これらのコレクションのインスタンスを作成するのに役立つ関数がグローバル名前空間にあることがわかります。例えば、番号の変更可能なリストを作成するために、我々は言うことがあります。

var numbers : MutableList<Int> = mutableListOf(1, 2, 3); 

リストの読み取り専用のビューを作成するには、私たちが言うことがあります。

val readOnlyViewOfNumbers : List<Int> = numbers; 

をまたは、読み取り専用のリストを作成します数字で、私たちは言うことがあります。

val readOnlyListOfNumbers : List<Int> = listOf(1, 2, 3); 

n項目のリストを作成し、値nullで各要素を初期化するために、我々は言うかもしれない:

// Sorry, I forgot the function name for this one. It 
// is not nullableListOf(...) 
val numbers : List<Int> = nullableListOf(n); 

、たとえば、配列の各要素のための初期化関数との5つの要素を配列を作成するには、私たちが言うことがあります。しかし

val myArray : Array<Int> = Array(5, (i) => { /* return whatever */ }; 

、私はどんなことなく、List<Book>を作成したい場合は、その中の図書が、私は単純に、この(JavaやC#コード)のようにそれを初期化したいと思います:

List<Book> books = new ArrayList<Book>(); // Java or 
List<Book> books = new List<Book>(); // C# 

は、どのように私はKotlinにすることを行うことができますか?

公開されているコレクションインターフェイスの実装は公開されていますか?彼らはデフォルトコンストラクタを持っていますか?

+1

は、httpを参照してください。お問い合わせs/33727657/kotlin-and-immutable-collections/38002121コトリンとコレクションの徹底的な概要について – miensol

+0

このレポを見てくださいhttps://github.com/Kotlin/kotlinx.collections.immutable – IRus

+0

@irus申し訳ありませんが、私は行方不明です何か?それらは一連のインターフェースです。実装はどこですか? –

答えて

4

KotlinはJavaの実装を使用しています。

ので

val list = listOf<T>() 

これらの機能は、利便性のJava-コレクションを使用して

のために作成されている基本的に

val list: List<T> = ArrayList<T>() 

で細かすぎる://:

val list: List<Book> = ArrayList<Book>() 
val mutableList: MutableList<Book> = ArrayList<Book>() 
+0

ありがとうございます。私はJavaコレクションを使用できることを理解しています。私はKotlinの標準ライブラリが独自の実装を提供しているという印象を受けました。 –

+3

彼らは小さな標準ライブラリ(アンドロイド - デックスカウントの利点)を持ち、相互運用性を最大にするためにできるだけ多くのjavaを再利用しました。 – D3xter

関連する問題