因此,根据我的演讲,书籍和网上发现的内容,我的代码是正确的,但是无论我做什么,我都会遇到相同的错误。令人沮丧的是,任何帮助都很棒。
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
}
这是错误:
----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
无论我为整数字符串写入哪种数据类型,每次都总是遇到相同的错误。这个实验要求它是DataElement。
答案 0 :(得分:0)
这是使用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
}
}
请注意,我还没有检查排序本身,我只是解决了DateElement问题