이 기사의 예는 Java의 일반적인 목록 개체 방법을 알려줍니다. 참조를 위해 모든 사람을 위해 공유하십시오. 특정 분석은 다음과 같습니다.
데이터베이스에서 감지 된 목록 목록에서 다른 필드는 종종 정렬 된 필드를 사용하고 데이터베이스에서 다시 확인하는 것입니다. 데이터베이스에서 문의하지 않으면 첫 번째 발견 된 목록에 직접 정렬하면 시스템의 성능이 향상됩니다.
첫 번째 감지 결과가 세션에 저장되는 한 목록을 정렬 할 수 있습니다. 일반적으로 목록 정렬은 Collections.SORT (List)에서 사용할 수 있지만 목록에 객체가 포함되어 있으면이 메소드에 여전히 불가능합니다. 그래서 어떻게 분류합니까? userinfo 객체가있는 경우 다음 필드가 포함됩니다.
Private Java.Lang.String username;
이제 userId를 정렬해야합니다. 다음 방법을 사용할 수 있습니다.
collections.sort (list, new comparator () {public int compare (object a, object b) {int one = ((순서) a) .getUserId (); int two = (Order) b) .getUserId (); 1-2;}});
이러한 방식으로, userInfo 목록의 각 필드를 정렬하려면 각 필드에서 위에서 볼 수 있듯이 세그먼트에 의해 작성됩니까? 그것이 우리가 필요한 결과가 아닙니다. 프로그램 작성은 점점 더 세련되며 점점 더 중복을 쓸 수 없습니다. 일반적인 방법을 쓸 수 있습니까? 대답은 예이지만 우선 다음 세 가지 질문을 해결해야합니다.
1. 일반 유형을 사용할 수 있습니다.
2. 비교와 같은 일반적인 비교 방법;
3. 일반 및 일반 방법과 같은 팬 -웨이 방법이 있습니까?
첫 번째 문제는 모든 유형의 객체가 문자열로 변환 할 수 있기 때문에 두 번째 문제는 그다지 어렵지 않습니다. 세 번째 문제에는 필요한 팬 -웨이 방법이 없습니다. 그러나 우리는 그것을 바꾸고 getMethod를 사용하고 방법을 호출하여 동적으로 방법을 취할 수 있습니다. 코드는 다음과 같습니다.
public class sortlist <e> {public void sort (list <e> 목록, 최종 문자열 메서드, 최종 문자열 정렬) {collections.sort (list, new comparator () {public int compare (O. bky a, 객체 b) { int ret = 0; 방법 m1 = ((e) a). equals (sort) // 역전 ((((((((((())))), null) .tring ((E). = m1.invoke ((((e) a)), null) .tring (). 비교 (m2.invoke ((e) b)), null) .tring ();} catch (nosuchmethodexception ne) {system.out. println (ne);} catch (INEGALACCESSEXCEPTION IE) {System.out.println (IE);
위의 코드를 살펴보면 위의 세 가지 문제를 성공적으로 해결하고 상승 순서를 추가 했습니까? 코드에는 특정 객체와 유형이 없으며 이미 Generic E를 사용합니다. userInfo의 userId를 정렬하려면 매개 변수 형식으로 문자열 이름을 전달할 수 있습니다. : 예를 들어, "예를 들어"getUserId "입니다. 아래에 제공된 코드를 사용하여 테스트 할 수 있습니다.
//test.javapackage import java.util.list; = New ArrayList <UserInfo> (); 새로운 simpledateformat ( "yyyy-mm-dd"; 11)); Add (new userInfo (1, "c", formterer.parse ( ""1980-10-01 "), 30); ("1973-10-01 "), 11); 시스템. out.println ( "------- 원래 순서 ------------------------------------ ---------------------- "" "); } // Universal Class SortList를 호출 <UserInfo> SortList = SortList (list, "getUserId", "desc"); ----------------------------------- "); for (userInfo 사용자 : 목록) {system.out.println (user.tostring ());} // username sortlist.sort (list, "getUsername", null)를 누릅니다 --------------------------------------------------------- --------------------------------------------------------- --- ");););} // sortList.SORT (목록,"getBithDatest ", null); System.out.println ("------------------- ------------ ------------------------------------------------------------------------------------------------------------------------------ System.out.println (user.toString ());}}}
테스트 결과는 다음과 같습니다.
------- 원본 시퀀스 ------------------------------------------- --------------------------------------------------------- --------------------------------------------------------- --------------------------------------------------------- ----------------------- 1980-12-01; 10-01; 302; 3 1980-10-01; --------- 1973-12-01; --------------------------------------------------------- --------------------------------------------------------- ----------------------------- 2; -01;
참고 : 날짜 정렬은 먼저 형식으로 변환되며 그렇지 않으면 올바른 결과가 없습니다.
이 기사는 모든 사람의 Java 프로그램 설계에 도움이되기를 바랍니다.