gpt4 book ai didi

java - LinkedList 的简单 Java 排行榜

转载 作者:行者123 更新时间:2023-12-01 18:32:06 28 4
gpt4 key购买 nike

我目前正在开发这个应用程序,用于跟踪每日运行并显示排行榜。这是针对一个类的,所以我不一定要寻找代码,只是关于如何进行的一些想法。无论如何,应用程序当前将获取输入信息(从底部文本字段),创建 RaceEntrant 对象的 LinkedList(如下所示的类),并在右侧创建一个队列,该队列在参与者进行运行时被清空。问题是,我需要将 RaceEntrants 在(灰色)排行榜区域中按照运行时间从最小到最大的顺序进行排序。我在想是否有任何方法可以使用 LinkedList listIterator 方法来做到这一点,但我不太明白,假​​设它甚至可以工作。这是正确的想法还是有更好的方法来解决这个问题,如果可能的话我将如何实现 listIterator 的想法?抱歉问了这么长的问题,非常感谢您的帮助。

class RaceEntrant implements Comparable<RaceEntrant>
{
private String name,
car;
private double runTime;

public RaceEntrant(String name, String car)
{
this.name = name;
this.car = car;
}

public String getName()
{
return name;
}

public String getCar()
{
return car;
}

public double getTime()
{
return runTime;
}

public void setTime(double time)
{
this.runTime = time;
}

@Override
public String toString()
{
StringBuilder sb = new StringBuilder("");
sb.append(getName());
sb.append(" ");
sb.append(getCar());
sb.append("\n" );
sb.append("Best time: " + getTime() + "\n");
return sb.toString();
}

@Override
public int compareTo(RaceEntrant entrant)
{
if (this.runTime > entrant.runTime)
return 0;
else
return 1;
}
}

application example

最佳答案

看看java.util.TreeSet - 它是SortetSet的实现,应该做你想做的事情。

其他一些事情:

  1. 如果一个类实现了Comparable,它还应该重写hashCode()equals()以确保正确性。 (通常 equals() 会委托(delegate)给 compareTo() - 这意味着在 equals() 中你将有一行像 返回compareTo((RaceEntrant) obj) == 0
  2. 考虑创建一个 Comparator 的实现,以便与 TreeSet 一起使用,这样您就不必让 RaceEntrant 实现 Comparable.
  3. TreeSet 将根据提供的 ComparatorComparable 在添加/删除元素时自动重新排序。

关于java - LinkedList 的简单 Java 排行榜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23717665/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com