while循环应该比较这两个对象的ibsn。 对象进行比较:无限while循环
list[0] = new ReadingMatter ("Words and Stuff", "9-082-1090-1");
list[1] = new Magazine ("Fashion", "318921019", "Mike Dales");
list[2] = new Book ("Rocks and Minerals", "3-323-0691-2", "Jamie Dawson");
String[] mainCharacters = {"Lennie","George","Candy"};
list[3] = new Novel ("Of Mice and Men", "4-569-2190-1", "John Steinbeck", mainCharacters);
list[4] = new TextBook ("Java, Java, Java", "3-131-9871-0", "John Smith", true);
变更后的compareTo:
public int compareTo(Object other)
{
ReadingMatter temp = (ReadingMatter)other;
int result = 0;
if (this.isbn.compareTo(temp.getIsbn()) > 0)
result = -1;
else if (this.isbn.compareTo(temp.getIsbn()) < 0)
result = 1;
return result;
}
while循环
while(testing)
{
testing = false;
for(int j = 0; j < list.length - 1; j++)
{
if (list[j].compareTo(list[j+1]) > 0)
{
temp = list[0];
list[0] = list[1];
list[1] = temp;
testing = true;
}
}
}
是它的东西做的连字符的数字?我如何绕过连字符?
编辑:问题是,循环是无限的,如果总是被用来声明
有什么问题吗? – Razvan
您没有包含足够的详细信息以获得满意的答案。你有什么问题? isbn.compareTo方法的代码在哪里?杂志和书籍是否延伸ReadingMatter? –
你应该参数化你的'Comparable';还有什么可以重写为'return other.isbn.compareTo(isbn);' – fge