자바 정렬 - 엔티티에 대한 다양한 속성에 (ComparableComparator / ComparatorChain를) 정렬

후, 프로젝트의 개발 과정, 시간별로 정렬 역 목록에 실시 라우팅 정보를 전달에 대한 명시 물류 정보를 얻기 때문에 약간의 녹음을하고 요약에서 
물류 정보 얻기 // 뒤에서 ExpressRouteVO 엔티티
목록을 <ExpressRouteVO> routeList = getExpressRouteByNo은 (entity.getBillNo는 ()) ;

. = ComparableComparator 비교기는 mycmp1
의 getInstance () ;
// 기본값은 긍정적이다, 우리는 뒷면의 설정

. mycmp1 = ComparatorUtils을 reversedComparator (mycmp1를) ;
ArrayList를 <개체> =의 SortFields 새로운 새로운 ArrayList를 <객체 > () ;
sortFields.add ( 새로운 새 BeanComparator ( "시간" , mycmp1)) ;
// 일종의 연쇄 생성

ComparatorChain MultiSort = 새로운 새 ComparatorChain합니다 (의 SortFields)를 ]
. 컬렉션 정렬 (routeList , MultiSort);
Params.put ( "expressDataList" , routeList) ,

둘째, 찾기 위해 네트워크의 일부 참조는 다음
, 비교기 mycmp1 = ComparableComparator.getInstance ()
. Mycmp1 = ComparatorUtils reversedComparator (mycmp1); // 역순 비교기 mycmp2 = ComparableComparator.getInstance을 ( ) . mycmp2 = ComparatorUtils nullHighComparator (mycmp2); // null을 허용 속성 // 객체 정렬 및 데이터 정렬이 지정되지 않은 경우, 사용되는 표시하는 선언, 디폴트 종류 의 ArrayList <object>의 SortFields = 새로운 ArrayList를 < 개체> (); sortFields.add (새 새로운 BeanComparator ( "나이", mycmp1)); // 기본 정렬 (첫 번째 순서) sortFields.add (새 새로운 BeanComparator ( "등급", mycmp2));// 정렬 시간 (초 오더) // 일종의 연쇄 생성 ComparatorChain multiSort = 새로운 ComparatorChain (의 SortFields)를 ;
 


 




 


 
제 1 주 및 후면 하위 규칙에 따라, 실제 정렬을 시작 //
은, Collections.sort (사용자, multiSort),

셋째, 다음 ComparableComparator를 사용하여, 우리는 쉽게 종류의 다양한 특성을 비교할 수 있습니다, 여기 만 간략하게 기록 할 수 엔티티에있어서, 상기 이해의 기본이되는 구현의 방법의 종류에 대한 더 많은 일을 할 시간이 있었다.

참조 :
https://blog.csdn.net/lizeyang/article/details/8877868
https://blog.csdn.net/qq_37107280/article/details/75570969


------------- ------------------
수입 java.io.Serializable을 ; 

/ **
*路由节点信息
* /
공용 클래스 ExpressRouteVO가 직렬화 {구현

개인 문자열 시간 ;

개인 문자열 주소 ;

개인 문자열 발언 ;

개인 문자열 연산 코드 ;

공공 문자열 다음 getTime는 () {
반환 시간 ;
}

공공 무효 setTime (문자열 시간) {
이. 시간 = 시간 ;
}

공공 문자열 getAddress에 () {
반환 주소 ;
}

공공 무효{setAddress (문자열 주소)
이. 주소 = 주소 ;
}

공공 문자열 getRemark () {
반환 발언 ;
}

공공 무효 setRemark (문자열 말) {
이. 비 = 비 ;
}

공공 문자열 getOpCode () {
반환 OPCODE ;
}

공공 무효 SETOPCODE (문자열 연산 코드) {
이. 오피 = 오피 ;
}
}

-------------------------------------------
 

추천

출처www.cnblogs.com/zluckiy/p/11455585.html