ソースコード解析 - Collections.sort()
A、Collection.sort使用
Collections.sort():メソッドは、そう、あなたが比較してソートすることができます確保するよう、コンパレータ<T>を継承する、着信Collections.sort(の要素タイプ)の最初のセットの正種類のセットです。
ソースコードの解析によると、達成するために、主に2つの方法があります。
(1)従来のタイプおよび他のタイプの文字列のソート
(このような時、価格、年齢ソートなど)JavaBeanのプロパティの(2)ソートします
ユースケース:
リストの<string> listOne =は、Arrays.asList( "3"、 "2"、 "5"、 "8" )。 Collections.sort(listOne)。// 默认升序 するSystem.out.println( "listOne =" + listOne)。 / ** *输出结果: * listOne = [2、3、5、8] * /
二、リストのJavaBeanの一種のCollections.sort
基本となるアルゴリズムは、実際のようには、Arrays.sort、は、Arrays.sort利用マージソート、クイック・ドレインの最適化、timSortを実行し、配列のセットに変換されます。
2、データのソート文字列型
ソースコードの文字列解析。
文字列型の実装しているので同等の<string>インターフェイス、ソートCollections.sort(ソートされていない)を使用することができます。
一覧<文字列>ソートされていない= 新しいのArrayList <文字列> (); Collections.sort(ソートされていません)。// 文字列实现了匹敵接口
注:カスタムのJavaBeanのためには、それが直接使用されていない、実装されていませんが、コンパレータが実装されてもよいです。
一つの方法:
Collections.sort(ソートされていない、新しいコンパレータ<unSortedBean> (){ @Override 公共 のint 比較(unSortedBean arg0に、unSortedBean ARG1){ // 升叙 戻り arg0.getOrder() - arg1.getOrder(); } })。
第二の方法:
またCollections.sort()を使用することができ、モードのみインターフェースを実装するJavaBeanとのcompareTo()メソッドによって同等昇順または降順を達成します。