2013-04-22 3 views
-4

나는 다음과 같이 프로그램을 작성했다. 클래스 플레이어에서 문자열 a을 기준으로 링크 된 목록을 정렬하고 싶습니다.오브젝트가 들어있는 java에서 링크 된 목록 정렬하기

이제 출력

nagpur rathi 
akola ashwin 

이지만 가변 a으로 정렬 한 후에는 다음과 같은 코드가

akola ashwin 
nagpur rathi 

같아야

package link.demo; 

public class Player 
{ 
    String a,b; 

    Player() 
    { 
    } 

    Player(String city,String name) 
    { 
     a=city; 
     b=name; 
    } 
} 

package link.demo; 

import java.util.Iterator; 
import java.util.LinkedList; 

public class Linkdemo 
{ 
    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args)throws Exception 
    { 
     // TODO code application logic here 
     Player b=new Player("nagpur","rathi"); 
     Player c=new Player("akola","ashwin"); 
     //player temp=new player(); 
     LinkedList<Player> l= new LinkedList<Player>(); 

     l.add(b); 
     l.add(c); 

     Iterator<Player> itr=l.iterator(); 

     while(itr.hasNext()) 
     { 
      Player temp=itr.next(); 
      System.out.println(temp.a+" "+temp.b); 
     } 
    } 
} 
+2

Collections.sort 및 정렬 할 클래스에서 compareTo 메서드를 재정의합니다 (플레이어). 이것은 아마도 쉽게 검색 할 수 있습니다 –

+0

좋아. compareTo 메서드를 재정의하려고합니다. – ashwinbhy

답변

1

좋고, 플레이어 (데이터) 클래스는 Comparable을 구현해야합니다. http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html

에 명시된 바와 같이이 인터페이스를 구현하는 각 클래스 의 오브젝트에 전체 순서를 부과한다. 이 순서를 클래스의 자연 순서 부라고하며 클래스의 compareTo 메서드는 자연스러운 비교 메서드라고합니다.

이 인터페이스를 구현하는 객체의 목록 (및 배열)은 Collections.sort (및 Arrays.sort)에 의해 자동으로 정렬 된 일 수 있습니다.

따라서 구현하면 Collections.sort(l)을 호출 할 수 있습니다. 나는 당신에게 기초를 가르쳐 줄 http://www.onjava.com/pub/a/onjava/2003/03/12/java_comp.html을 읽을 것을 권합니다.