Java 5には自動ボクシングがあるので、プリミティブをソートするためにコンパレータを使用できないのはなぜですか? int
はInteger
にはラップされませんか?プリミティブをソートするためにコンパレータを使用できないのはなぜですか?
答えて
Arrays.sort(..)
には、プリミティブ配列をソートするための専用のオーバーロードがあります。
標準のものとは別の特別な仕分けルールが必要な場合は、オートボックスを使用する必要があります。それに加えて、int[]
は自動ボックス化されていないので、配列をInteger[]
に変換する必要があります。
あなたが配列について話しているのではなく、コレクションについて言えば、あなたは選択肢がありません。コレクションはオブジェクトだけを保持できます。
コンパイラは使用しません。 –
コレクションがプリミティブを保持できないのは私の疑問です。整数を使用すると、オブジェクトになります。 –
コレクションはGenericsを使用して定義され、Genericsはプリミティブをサポートしません。 http://trove.starlight-systems.com/のようなプリミティブのコレクションを持つことはできますが、これらは標準インターフェースに準拠していません。 –
Comparator<T>
- または他のパラメータ化された型のパラメータをプリミティブ型でパラメータ化することはできません。
はい、これは大変厄介です... List<int>
やMap<String, boolean>
などは作成できません。オブジェクトタイプとプリミティブの両方で機能する汎用メソッドを記述することはできません。あなたは、8つのプリミティブ型のそれぞれに専用のメソッドを持たなければなりません。しかし、これはJava 1以来ずっと続けられてきた設計です。
Bozhoが指摘するように、Arrays.sort(...)
は必要なすべてのソート方法を提供します。
- 1. 関数コンパレータがソートのように優先度キューで動作しないのはなぜですか?
- 2. json形式のデータをエンコードするためにurlencodeを使用できないのはなぜですか?
- 3. なぜレポートビューア2010のデータをソートできないのですか?
- 4. XSLでapply-templatesを使用するためのパラメータを取得できないのはなぜですか?
- 5. Javaコレクション。プリミティブ型はなぜですか?
- 6. 「?」を使用できないのはなぜですか?オペレーター?
- 7. strerrorを使用できないのはなぜですか?
- 8. $ session_start()を使用できないのはなぜですか?
- 9. priorty_queueインスタンシエーションのコンパレータのテンプレートパラメータに質問しないのはなぜですか?
- 10. 返すためにインラインifステートメントを使用できないのはなぜですか?
- 11. 私の単純なコンパレータが壊れているのはなぜですか?
- 12. コンパレータを使用して複数の属性でソートするにはどうすればよいですか?
- 13. キーが単純なプリミティブ型でないときにContainsKey()を使用する
- 14. なぜmod_rubyでRailsを使用できないのですか?
- 15. なぜcodeigniterでinsert_batchを使用できないのですか?
- 16. なぜscipy.ioを使用できないのですか?
- 17. C#でDateTimeにNULLを使用できないのはなぜですか?
- 18. 入れ子になったクラスでインポートされたパッケージを使用できないのはなぜですか?
- 19. Windows Phone 8でhtmlagilitypackを使用できないのはなぜですか? WP8でHTMLを解析するために他に何が使えますか?
- 20. ApacheのStringUtils.joinをリストに使用できないのはなぜですか?
- 21. プライベートタイプでautoを使用できるのはなぜですか?
- 22. Javaを使用してリモートデータベースにアクセスできないのはなぜですか?
- 23. スキャン/トークン化にCFGを使用できないのはなぜですか?
- 24. Java enumを最終的に使用できないのはなぜですか?
- 25. MARSにli.sを使用できないのはなぜですか?
- 26. マップにフィルタを使用できないのはなぜですか?
- 27. 変数にinnerHTMLプロパティを使用できないのはなぜですか?
- 28. Web開発にC++を使用できないのはなぜですか?
- 29. border-leftに同じアニメーションを使用できないのはなぜですか?
- 30. なぜプリミティブ型の配列はオブジェクトと見なされないのですか
コンパレータはジェネリックを使用して定義され、ジェネリックスはプリミティブを処理しません。しかし、Arrays.sort()はComparatorを使用しません...おそらくあなたがしようとしていることを説明することができます。 –
@Peter LawreyはSCJP試験のためだけに勉強しています。コンパレータとラッピングの何が問題なのか疑問に思っています。 –