2013-04-22 114 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并重写要排序的类(player)中的compareTo方法。这可能很容易被搜索到 – 2013-04-22 11:03:12

+0

好的。 我会尝试重写compareTo方法 – ashwinbhy 2013-04-22 11:03:54

回答

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,这会教你基本知识。

相关问题