1

compareToJavaで関数を作ることについて質問があります。

Java にはString.compareTo(String)メソッドがあります。

compareToただし、次のように、パラメーターのみを持つ関数を作成する必要がありますcompareTo(String)

これを使用して別の文字列を保持する必要があると思います。

例えば:

public static boolean compareTo(String word)
{

  private string this.word = word;

   if(word.equals(this.word))
   {
       return true;

    } 
   else
  {
    return false;
  }

}

これは正しい考えですか?

最初の単語を保持して 2 番目の単語と比較するには、get 関数と set 関数を作成する必要がありますか?

ありがとう

4

3 に答える 3

3

2つのオブジェクトを比較するには、Comparableインターフェイスを実装する必要があります。実装の一部として、独自のcompareTo()メソッドを記述します。このメソッドは、現在のオブジェクトを渡されるオブジェクトと比較します。

public MyObj implements Comparable<MyObj> {

        ...
        public int compareTo(MyObj anObj) {
               // if your obj greater than anObj, return 1
               // if equal, return 0
               // else return -1
        }
}

コードのさらに下で、次のことができます-

  `MyObj anObj = new MyObj();
   MyObj anObj1 = new MyObj();
   // anObj.compareTo(anObj1) ....

   // This will also be useful if you have a collection of MyObjs.
   Collections.sort(arrayListOfMyObjs);
于 2011-06-21T04:52:35.520 に答える
1

それは多くの点で正しい考えではありません...

  • this静的関数で は使用できません。
  • 関数のローカル変数に可視性宣言を追加することはできません。
  • JavaにはありませんstringString
  • this.wordequals を作成しword、それらが等しいかどうかを確認します...
  • ブール値を返すために if/else を実行する必要はありません: 実行するだけですreturn x.equals(y);(必ずしも間違っているわけではありませんが、それは個人的な不満です...)。
  • compareTo、古典的なものは ではありませんequalsが、一方のオブジェクトが他方よりも低いか、等しいか、または高いかに応じて、-1、0、または 1 を返します。

レッスンを見直してください... :-)

于 2011-06-21T05:30:53.660 に答える
0

あなたのコードでは、compareTo メソッドは静的であるため、「this」は使用できません。compareTo メソッドを static にしない方がよいことをお勧めします。

于 2011-06-21T04:46:24.930 に答える