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