0

我有一个由 .txt 文件填充的对象数组

Object[] punteggiTutti = scores.toArray();

即使可以使用 .sort 功能:

Arrays.sort(punteggiTutti, Collections.reverseOrder());

我会知道如何应用有效的冒泡排序算法;我尝试了以下不起作用的代码:

for(int i=0; i<j; i++) 
    {
    if(punteggiTutti[i]<punteggiTutti[i+1])  // error "<" operator cannot be used in objects 
      {
      temp=punteggiTutti[i]; 
      punteggiTutti[i]=punteggiTutti[i+1];
      punteggiTutti[i+1]=temp;
      }
    }
4

2 回答 2

5

您不能使用 < 运算符比较两个对象。

使用实现 Comparable 接口的东西。然后可以使用函数 a.compareTo(b) 比较这些元素;

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html

也看看: http: //leepoint.net/notes-java/data/expressions/22compareobjects.html

尝试阅读 Java 中的相等性。这应该可以帮助您在使用 Java 时解决未来的错误。

于 2011-03-13T21:12:16.003 回答
0

为您的对象创建一个比较器,以将对象与另一个进行比较。内置的合并排序算法比冒泡排序快得多。

http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/sortcontest/sortcontest.htm http://www.sorting-algorithms.com/

于 2012-07-23T11:21:49.577 回答