【问题标题】:Sorting a linked list in java which contains objects [closed]在包含对象的java中对链表进行排序[关闭]
【发布时间】:2013-04-22 10:59:06
【问题描述】:

我编写的程序如下。我想根据班级播放器中的字符串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);
       }
    }
}

【问题讨论】:

  • Collections.sort 并覆盖要排序的类(播放器)中的 compareTo 方法。这可能很容易被谷歌搜索
  • 好的。我会尝试覆盖 compareTo 方法

标签: java linked-list


【解决方案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,它会教你基础知识。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2020-09-09
    • 2013-02-13
    • 2013-11-08
    • 1970-01-01
    相关资源
    最近更新 更多