所以我已经获得了预先编写的代码,我必须填写comepareTo
函数。它需要比较字符串并按长度排序,但我不确定方法中传递的是什么。
import java.util.Arrays;
public class testString implements Comparable<testString> {
String tempStr;
public testString(String str) {
tempStr = str;
}
public String toString() {
return tempStr;
}
public int compareTo(testString Str2) {
return 0;
}
String [] list = {"dog", "cat", "lion", "python", "giraffe", "emu"};
testString [] list2 = new testString[list.length];
for (int i=0; i<list2.length; i++) {
list2[i] = new testString(list[i]);
}
我不确定传递给compareTo
函数(Str2)的类型是什么。
我认为这将是一个列表,我可以通过for循环运行它,但是如果我尝试Str2 [1]那会给我错误。
答案 0 :(得分:0)
Str2参数是testString类型的对象(您定义的类)。 该方法用于将当前对象与作为参数接收的对象进行比较。为了理解这种比较,对象必须是相同的类型。
另请参阅Comparable接口的API文档。 https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html
方法compareTo是此界面的一部分。
在您的情况下,最简单的实现将是: return this.tempStr.compareTo(Str2.tempStr);
当然,Str2不能为null:)
答案 1 :(得分:0)
如果你只想在第一时间存储一个字符串,你会创建一个对象?
无论如何,您只需要通过将tempStr值的长度减去参数的长度来实现比较方法。最后你只需要返回结果。