Java 为什么我的选择排序算法总是出错

Java 为什么我的选择排序算法总是出错,java,sorting,Java,Sorting,因此,根据我的讲座、书和我在网上找到的东西,我的代码是正确的,但无论我做什么,我都会得到同样的错误。它已经变得相当令人沮丧,任何帮助都将是可怕的 public class OrderedArrayList extends UnorderedArrayList { public OrderedArrayList(int size) { super(size); } public OrderedArrayList() { super(); } //Copy cons

因此,根据我的讲座、书和我在网上找到的东西,我的代码是正确的,但无论我做什么,我都会得到同样的错误。它已经变得相当令人沮丧,任何帮助都将是可怕的

public class OrderedArrayList extends UnorderedArrayList
{

public OrderedArrayList(int size)
{
      super(size);
}

public OrderedArrayList()
{
    super();
}

    //Copy constructor
public OrderedArrayList(OrderedArrayList otherList)
{
    super(otherList);
 }

public void sort()
{// start sort
int min;
for (int i = 0; i < list.length; i++) 
{
    min = i;
    for (int j = i + 1; j < list.length; j++)
     {
        if (list[j] < list[min]) 
        {
            min = j;

        }
     }
    if (min != i)
     {
        final int temp = list[i];
        list[i] = list[min];
        list[min] = temp;
     }
    System.out.println(list[i]);//  print in ascending order  
    }


 }// end sort

}
公共类OrderedArrayList扩展了UnorderedArrayList
{
公共OrderedArrayList(整数大小)
{
超级(尺寸);
}
公共OrderedArrayList()
{
超级();
}
//复制构造函数
公共OrderedArrayList(OrderedArrayList其他列表)
{
超级(其他列表);
}
公共无效排序()
{//开始排序
int-min;
for(int i=0;i
以下是错误:

 ----jGRASP exec: javac -g OrderedArrayList.java
  OrderedArrayList.java:29: error: bad operand types for binary operator '<'
        if (list[j] < list[min]) 
                    ^
  first type:  DataElement
 second type: DataElement
 OrderedArrayList.java:37: error: incompatible types: DataElement 
 cannot be converted to int
        final int temp = list[i];
                             ^
  OrderedArrayList.java:39: error: incompatible types: 
  int cannot be converted      to DataElement
        list[min] = temp;
                    ^
   3 errors
----jGRASP exec:javac-g orderedaraylist.java

OrderedArrayList.java:29:错误:二进制运算符“的操作数类型不正确这是使用DateElement而不是int的排序方法

public void sort() {// start sort
    int min;
    for (int i = 0; i < list.length; i++) {
        min = i;
        for (int j = i + 1; j < list.length; j++) {
            if (list[j].compareTo(list[min]) < 0) {
                min = j;
            }
        }
        if (min != I) {
            final DateElement temp = list[i];
            list[i] = list[min];
            list[min] = temp;
        }
        System.out.println(list[i]);//  print in ascending order  
    }
}
public void sort(){//开始排序
int-min;
for(int i=0;i

请注意,我没有检查排序本身,我只是修复了DateElement的问题

我编辑了文章,将错误添加为codeWhat is
list
?如果要对自定义类进行排序,需要对该类的一个int属性进行排序,以适合当前代码,或者实现
Compariable
。您的
DataElement
类是什么?您想排序的是什么?您好@chowy2387&欢迎来到SO。为了帮助我们回答你的问题,你能提一些细节吗?什么是无序数组列表?
列表的类型是什么,在哪里定义?看起来,
list[j]
似乎不包含您认为它包含的数据类型,但我们很难判断,因为我们缺少这些细节。我们的教授给了我们4个类,实验室将创建unorderedArrayList的继承,该继承将对任何数据类型的列表进行排序。unorderedArrayList中的所有数据类型也设置为DataElementyes,但问题是,当我出于某种原因调用sort方法时,我的列表变为null,即使在调用sort之前,其中包含数据。该错误发生在排序的第一个if语句中method@StevenAnderson我不确定这与您在问题中发布的错误或发布的代码有什么关系?很抱歉,我有另一篇关于相同代码的帖子。我让它进行编译,但现在我的列表在发送到sort方法时显示为null,尽管在发送到sort方法之前在驱动程序中使用它时它不是null。@StevenAnderson好吧,这听起来好像超出了这个问题的范围,特别是因为它发生在调用sort方法之前。