我需要使用接口BubbleSortable和一个类BubbleSort来对数字列表进行排序,该类的方法bubbleSort接受BubbleSortable []。

我尝试创建一个List,ArrayList和BubbleSortable数组(BubbleSortable a = new BubbleSortable [someLength];),但是,我始终无法将任何数据输入到列表中—我会收到一条错误消息,指出String或int无法转换为BubbleSortable。

这是BubbleSortable接口:

public interface BubbleSortable {
  boolean lessThan ( BubbleSortable bs );
}


类BubbleSort:

public class BubbleSort {
  /**/
  public static void bubbleSort ( BubbleSortable [] list ) {
    /**/
    int len;
    BubbleSortable temp;
    /**/
    len=list.length;
    /**/
    for ( int p=0; p<len-1; ++p ) {
      for ( int i=0; i<len-1-p; ++i ) {
        if ( list[i+1].lessThan(list[i]) ) {
          temp=list[i+1];
          list[i+1]=list[i];
          list[i]=temp;
        }
      }
    }
    /**/
    return;
  }
}


还有一些我想对列表进行排序的课程

import java.io.*;
import java.util.*;
/**/
public class TestR implements {
    /**/
    public static void main (String [] arg) {
        BubbleSortable [] bsList = new BubbleSortable [5];
    }
        public static boolean lessThan ( BubbleSortable bs ) {
                      // don't know how to work with BubbleSortable object
    }
}

最佳答案

你需要:


一个implements BubbleSortable的Bubble类,在其构造函数中使用一个int并将其存储在私有字段中。
BubbleSortable中的功能getNumber(),您将在Bubble中使用override,以便它返回其专用的int字段。


然后,您可以在主函数中创建数组:

BubbleSortable[] bsArray = new Bubble[]
            {new Bubble(5), new Bubble(2), new Bubble(4)}; // some numbers to be sorted


并对其进行排序:

BubbleSort.bubbleSort(bsArray);


完成所有操作后,如果在排序数组时遇到任何问题,请发表一篇新文章。

07-24 18:50