在java中对包含对象的链表进行排序

时间:2013-04-22 10:59:07

标签: java linked-list

我编写的程序如下。我想根据类播放器中的字符串a对链表进行排序。

现在输出

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);
       }
    }
}

1 个答案:

答案 0 :(得分: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,这将教你基础知识。