예를 사용하여 Java 정적 일반적인 방법 - 도구

소개 : 여러 도구는 클래스 분류, 비교 및 ​​다른 작업을 모델링 할 때, 필요가 얼마나 게으른 항상 저장할 때문에, 코드 중복을 많이 쓰기 때문에 제네릭을 사용하여 코드를 단순화하기 위해이 물건을 고려해야 할

 

케이스 : 현재 모델이 두 클래스, 과일과 사람은, 그러나 방법은 다양 비즈니스 로직을 분류, 따라서이 정렬 방법을 쓸 필요가있다 필요하지만 너무 장소의 같은 종류 때문에, 유일한 차이점은 두 개의 판사입니다 이 간단한 조작으로 이렇게 크기 관계 객체.

 

에 따를 절차 :

1, 모델 클래스 인터페이스 인터페이스 모델의 준비 

(1 개)  공중  인터페이스 모델 <T> {
 2      공개  INT 은 compareTo (T 모델);
3 }

여기에 단지 우리가 비교하는 방법을 정의 할 필요가

2, Person 클래스 클래스 사람의 준비

1  공용  클래스 사람 구현 모델 <사람> {
 2      개인 문자열 이름;
3  
4      공용 인 (문자열 _name) {
 5           .name을 = _name;
6      }
 7  
8      @Override
 9      공용  INT 은 compareTo (사람 _person) {
 10          반환  .name.compareToIgnoreCase (_person.name);
11      }
 12 }

예를 들어 나는 비교 방법이 동일 아마 쓰기 때문에 코드의 과일 나는 감동하지 않지만, 실제 비즈니스 코드는 동일하지 않을 수 있습니다

3, 쓰기 도구 클래스 정렬

1 개  공용  클래스 정렬 {
 2  
3      공개  정적 <T는 확장 모델 <T >> 공극 정렬 (목록 <T> 목록) {
 4           ( int로 -; 나는 ++ 1 내가 <는 list.size () I = 0 ) {
 5               ( INT의 J = I, J <는 list.size (); J ++ ) {
 (6)                  의 경우 (list.get (I) .compareTo (list.get (j))> 0 ) {
 7                      T = 스왑 list.get (I) ;
8                      list.set (I, list.get (j));
9                      list.set (j 스왑);
(10)                 }
 11              }
 12          }
 13      }
 14 }

쉽게 세트에 정렬 알고리즘 가서 발견

그런 다음 주요 기능은 호출하는 것입니다

1 개  공용  클래스 주요 {
 2      공용  정적  무효 메인 (문자열 []에 args) {
 3          LinkedList의 <이용시> 목록 =  LinkedList의 <> ();
4          에는 list.add (  사람 ( "관리자" ));
5          에는 list.add (  사람 ( "루트" ));
6          에는 list.add (  사람 ( "화웨이" ));
7          에는 list.add (  사람 ( "시스코" ));
8          Sort.sort (목록);
9          에 대한 {: (목록 사람 항목)
10              에서 System.out.println (item.toString ());
11          }
 12      }
 13 }

4 과일 클래스 방법을 이용하여 정렬 될 수 Person 클래스에 따른 모델 compareTo 메소드로서 구현 될 수있다 Sort.sort

 

포스트 스크립트 : 내 생각은, 모델 인터페이스를 쓰기 인터페이스의 compareTo 메소드를 작성하기 시작, 다음 매개 변수 유형을 작성하는 방법을 모르는

당신이 모델을 작성하는 경우, 다음, 때 사람은 compareTo 메소드 매개 변수 유형이 확실히 모델입니다 달성

나는이 논리가 얼마나 불편 한 수, 비교적 간단 모델 인터페이스 플러스 getName 방법 후 경우, 이름 필드와 비교

이름 필드가 없을 수 있습니다 모델 클래스와 같은 사람 클래스는 과일 범주와 비교 될 수있다

이 논리에서 그렇게 할 수는 없지만, 그러나 아 불편 그것을보고, 그래서 그는 제네릭 함께이 일을 생각 할 수있는 방법

추천

출처www.cnblogs.com/panther1942/p/11498945.html