私はjava.util.Arraysのソースコードを見てきました。ソートするときは常に配列の長さを参照しています(ArrayListの場合は、E []データ(一時的な)フィールドの長さ。 java.util.ArraysはArrayList(長さとサイズ)のソートをどのように処理しますか?
答えて
答えがCollections
で見つかった場合は、長さが等しいArrayListの配列を返すtoArray()
が返されますサイズに、Arrays
はコピーをソートし、Collections
は、実際のArrayListをソートすることを使用しています。
それをソートするとき、常にlengtを指し、 hの配列
いいえ。すべてのデータ型に対して、とtoIndex
パラメータを受け入れ、並べ替える配列の正確な部分を指定して、Arrays.sort(Object[] a, int fromIndex, int toIndex, Comparator<? super T> c)
のようなArrays.sort
のオーバーロードがあります。
public void sort(Comparator<? super E> c) {
final int expectedModCount = modCount;
Arrays.sort((E[]) elementData, 0, size, c);
if (modCount != expectedModCount) {
throw new ConcurrentModificationException();
}
modCount++;
}
ArrayList
選別方法に直接独自size
変数を渡し:ArrayList.sort
によって呼び出されるメソッドである
。 its sort
methodを上書きしませんList
については
、最初default implementationは一時配列と種類に内容をダンプします:デフォルトの実装は、このリスト内のすべての要素を含む配列を取得し、配列をソート
配列内の対応する位置から各要素をリセットするこのリストを反復処理します。 (これは代わりに、リンクされたリストをソートしようとしn2のログ(n)のパフォーマンスを回避することができます。)
default void sort(Comparator<? super E> c) {
Object[] a = this.toArray();
Arrays.sort(a, (Comparator) c);
ListIterator<E> i = this.listIterator();
for (Object e : a) {
i.next();
i.set((E) e);
}
}
のJava 8で始まり、古い方法Collections.sort(list)
はちょうどlist.sort(null)
起動します。
既に答えが見つかりましたが、あなたの方がはっきりしています。 –
- 1. com.sun.faces.renderkit.html_basic.MenuRenderer createCollection:タイプjava.util.Arrays $ ArrayListの
- 2. arrayList内のオブジェクトをどのようにソートできますか?
- 3. ArrayListをどのようにソートできますか?
- 4. どのようにcdialogexのサイズ変更をうまく処理するには?
- 5. RESTはこの処理をどのように処理しますか?
- 6. このクラスエラーはどのように処理されますか?
- 7. このリストはどのように処理されますか?
- 8. どのようにC#は非同期処理を処理しますか?
- 9. Koa.jsとストリーミング。どのようにエラーを処理しますか?
- 10. どのように効率的に各ArrayListの特定の値でArrayListのArrayListをソートできますか?
- 11. マクロはどのようにプリプロセッサで処理されますか?
- 12. レンダリング処理はどのように実行されますか?
- 13. メッセージフレームはTransitでどのように処理されますか?
- 14. 同時トランザクションはどのように処理されますか?
- 15. データはどのようにパイプで処理されますか?
- 16. エラー処理文はどのようにフォーマットされますか?
- 17. Apache Flink:バックプレッシャーはどのように処理されますか?
- 18. GCはIEnumeratorとどのように連携して処理されますか?
- 19. デスクトップブラウザはどのようにモバイルメタタグを処理しますか?
- 20. PageRankアルゴリズムはどのようにリンクを処理しますか?
- 21. Shoutem v5はマルチレベルナビゲーションをどのように処理しますか?
- 22. Androidはどのようにバックライトタイムアウトを処理しますか?
- 23. CouchDBはどのようにデータを処理しますか?
- 24. アンドロイドはGUIイベントをどのように処理しますか?
- 25. Entity Frameworkはどのようにトランザクションを処理しますか?
- 26. ブラウザはどのようにJavaScriptを処理しますか?
- 27. Cassandra:クラスタはどのようにデッドノードを処理しますか?
- 28. pythonはどのようにシグナルを処理しますか?
- 29. OpenMPはどのようにネストループを処理しますか?
- 30. UITableViewはどのようにタッチを処理しますか?
あなたは既にそのソースを掘り下げているので、その一部を投稿してみませんか?そこにはJDKの複数のバージョンがありますので、あなたが覗いたソースコードをすべて見ていることを知っていますか? – GhostCat
'Arrays'は' ArrayList'をソートすることとは関係ありません。あなたは 'Collections'を考えていますか? –