java - 创建结果列表并处理相同的结果。 ( java )

标签 java similarity bubble-sort

我是 java 新手,想要创建一个如下所示的结果列表:

首先用户输入事件,然后显示结果列表(左侧的位置、结果和名称)。

Command> Javelin
Results for Javelin
1 86,00 William Mandela
2 83,50 Arthur Dent
3 63,00 Donald Dublett
4 58,00 Hawkeye Pierce
5 40,00 Ada Lovelace

如果有两个或多个相同的结果,则运动员共享排名。

 Command> 100 meters
Results for 100 meters
1 11,30 Donald Dublett
2 12,40 Tricia Mcmillan
2 12,40 Alan Turing
4 13,00 William Mandela
5 15,00 Arthur Dent
5 15,00 Ada Lovelace
7 16,00 Hawkeye Pierce

这是我到目前为止所得到的,但它不起作用。

for (int m = 1; m < ResultList.gamesResults.size(); m++) {
                    System.out.println(counter++ + ". " + ResultList.gamesResults.get(m-1).getResult());
                    if (ResultList.gamesResults.get(m).getResult() == ResultList.gamesResults.get(m-1).getResult()) {
                      System.out.println(counter + ". " + ResultList.gamesResults.get(m).getResult());
                    }

                } 

名称部分现在并不重要。我想做的是一种冒泡排序,但我只是检查相同的结果。你们有什么感想?我是在浪费时间吗?感觉我走在正确的轨道上。我错过了什么?

我不想使用比较器接口(interface),所以你知道。

最佳答案

我不知道你为什么不想使用比较器。您需要编写一个名为 Results 的类:

private class Results
{
    double Result;
    String name;
    int rank;
}

然后构建一个数组列表:

List<Results> list = new ArrayList<Results>();

然后使用比较器对它们进行排序,该比较器根据“结果”字段进行比较,例如

Collections.sort( list , CustomComparator<Results> );

然后现在关于职位: 您现在已经有了排序后的列表。迭代它们并执行以下操作:

Iterator<Results> it = list.iterator();
int position = 0;
double toCompare = 0;
boolean changePosition = false;
while ( it.hasNext() )
{
   Results results = it.next();
   if( results.result > toCompare )
   {
      changePosition = true;
   } 
   else if( results.result == toCompare )
   {  
      changePosition = false;

   }

   if( changePosition )
   {
      results.rank = position++;
   }
   else
   {
      results.rank = position;
   }

   toCompare = results.result;

  }

我希望你能明白。

然后打印整个数组列表。

关于java - 创建结果列表并处理相同的结果。 ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34668320/

相关文章:

java - 如何读写一个HashMap到一个文件?

java - 为什么 java.util.Set<V> 接口(interface)不提供 get(Object o) 方法?

java - Apache Curator DistributedQueue 的 lockPath 是如何工作的?

mysql - 使用空间 MySQL 功能加速文本比较(特征向量)

opencv - OpenCV 中的模板匹配可以处理两个相同大小的图像吗?

c++ - 在自定义冒泡排序实现中比较迭代器崩溃程序而没有错误

java - 如何在客户端 Socket 上等待 ServerSocket 连接

text - 基于相似度的文本流聚类算法最近有什么突破吗?

c++ - 从文件中读取的 ARRAY 类 BubbleSort

java - 修改了冒泡排序,但无法正常工作