我编写的程序如下。我想根据类播放器中的字符串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);
}
}
}
答案 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,这将教你基础知识。