是否可以对一组对象进行起泡?

时间:2011-03-13 21:09:38

标签: java arrays object bubble-sort

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

Object[] punteggiTutti = scores.toArray();

即使可以使用.sort函数:

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

我知道如何应用工作的bubblesort算法;我尝试了以下不能正常工作的代码:

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;
      }
    }

2 个答案:

答案 0 :(得分:5)

您无法将两个对象与&lt;运营商。

使用实现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时遇到未来的错误。

答案 1 :(得分:0)

为对象创建一个比较器,以便将对象与另一个对象进行比较。 内置的mergeSort算法比bubblesort快得多。

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