不了解传递给方法的内容

时间:2015-05-17 20:53:05

标签: java compareto

所以我已经获得了预先编写的代码,我必须填写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]那会给我错误。

2 个答案:

答案 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值的长度减去参数的长度来实现比较方法。最后你只需要返回结果。