Int compareTo(object obj)

时间:2012-12-05 04:38:10

标签: java

我必须创建一个方法,将对象作为参数传递并比较两个MyString对象。

int compareTo(MyString anotherString)
  • 如果此对象小于参数对象,则返回-1。
  • 如果两个MyStrings匹配则返回0
  • 如果此对象大于参数对象
  • ,则返回+1

我还必须创建一个将传递字符串并将其与对象进行比较的文件,并将比较两个对象并忽略这些案例。问题是我必须不重复代码。伪代码会有所帮助,但解释我做错了什么以及一个例子是最有必要的。

     public int compareTo(BigString ob)
     {
         BigString comp;
         for(int i =0;i < SIZE;i++)


         if(thatArray[i] > comp.thatArray[i])
         {
             return 1;
         }
          else if( thatArray[i] == comp.thatArray[i])
          {
             return 0;
          }
           else if( thatArray[i] < comp.thatArray[i] )
           {
             return -1;
           }
     }

2 个答案:

答案 0 :(得分:1)

- 如果您的主要目的是比较String对象并对其进行排序,那么最好使用java.lang.Comparable<T>

- 如果您想根据多个属性比较两个对象并对其进行排序,请使用java.util.Comparator<T>

请在此处查看此示例:

http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/

答案 1 :(得分:1)

当一对字符匹配时,您的函数返回0并忽略其余输入。但是,在这种情况下,它应该继续使用下一个字符。

使用此方法比较字符串或char数组是不安全的,因为它纯粹依赖于char的数值,这不一定与字母顺序相同。您应该使用String.compareTo(String)方法,因为它还会检查输入的大小。要检查大小写,只需将String对象转换为大写/小写,然后进行比较。