プロジェクトの開発プロセスでは、時間によってソートされた逆リストに運ばルーティング情報を配信するために急行物流情報を取得するので、いくつかの記録を行い、まとめた後に
//が物流情報取得の背後にExpressRouteVOエンティティ
リストを<ExpressRouteVO>ルート・リスト= getExpressRouteByNoは(entity.getBillNoは());
。= ComparableComparatorコンパレータはmycmp1 のgetInstance();
//デフォルトは正であり、我々は逆側の設定
。mycmp1 = ComparatorUtilsをreversedComparator(mycmp1を);
ArrayListの<オブジェクト> =のSortFields 新しい新しいのArrayList <オブジェクト>();
sortFields.add(新新BeanComparator("時間" 、mycmp1));
//ソート・チェーン作成
ComparatorChainマルチソート= 新新ComparatorChain(のSortFieldsを);
。コレクションの並べ替え(ルート・リスト、マルチソート);
Params.put("expressDataList" 、ルート・リスト);
第二に、見つけるために、ネットワーク内のいくつかの参照は次のとおり
、コンパレータmycmp1 = ComparableComparator.getInstance()
。Mycmp1 = ComparatorUtils reversedComparator(mycmp1); //逆順コンパレータmycmp2 = ComparableComparator.getInstanceを( ); 。mycmp2 = ComparatorUtils nullHighComparator(mycmp2); // nullを許可属性が//ソートするオブジェクトを宣言し、照合が使用されていることを示し、指定がない場合は、デフォルトのソートのArrayList <オブジェクト>のSortFields =新しいのArrayList < オブジェクト>(); sortFields.add(新新BeanComparator( "年齢"、mycmp1)); //次ソート(最初の注文)sortFields.add(新新BeanComparator( "グレード"、mycmp2));//ソート回(二次) // ソート・チェーン作成 ComparatorChainマルチソート=新しいComparatorChain(のSortFieldsを) 。
//最初のメインとリアサブ規則に従って、実際のソートを開始
Collections.sort(ユーザー、マルチソート);
第三には、以下のComparableComparatorを使用することによって、我々は簡単に記録するだけで簡単にここで、ソートの様々な属性を比較することができます実体法の一種、さらなる理解の基礎となる実装の方法についての詳細を行うには時間がありました。
参考:
https://blog.csdn.net/lizeyang/article/details/8877868
https://blog.csdn.net/qq_37107280/article/details/75570969
------------- ------------------
インポートしたjava.io.Serializable ;
/ **
*路由节点信息
* /
publicクラスExpressRouteVOはSerializableを実装して、{
プライベート文字列の時間を。
プライベート文字列のアドレス。
プライベート文字列発言。
プライベート文字列オペコード。
パブリック文字列getTime(){
戻り時間。
}
公共ボイドのsetTime(文字列の時間){
この。時間=時間;
}
パブリック文字列のgetAddress(){
リターンアドレス。
}
公共のボイドsetAddress(列アドレス){
この。アドレス=アドレス。
}
パブリック文字列getRemark(){
戻り発言。
}
公共ボイドsetRemark(文字列備考){
この。発言=発言。
}
パブリック文字列getOpCode(){
戻りオペコード。
}
公共ボイドsetOpCode(文字列オペコード){
この。オペコード=オペコード。
}
}
-------------------------------------------