0

compareTo(...)メソッドが内部でどのように機能するかを知る必要があります。結果に基づいて、値を交換しますか?

Condition:

1. If obj1 is less than object2 will return negative.
2. If obj1 is greater than object2 will return positive.
3. If obj1 is equal to object2 will return zero.

compareTo(...)メソッドが条件に基づいて内部でどのように機能するか

@Override
public int compareTo(DVDInfo o) {       
    return title.compareTo(o.title); // for title sort      
}
4

3 に答える 3

0

このcompareToメソッドは、2 つのオブジェクトを互いに比較し、2 つのオブジェクトの順序を示す値を返します。

String s1 = "abc";
String s2 = "bcd";
s1.compareTo(s2); // returns negative value
s2.compareTo(s1); // returns positive value

オブジェクトの交換などはありません。返される値は、要素の順序を示すだけです。文字列では、この順序はアルファベット順です (つまり、"abc" はアルファベット順で "bcd" より前です)。

文字列のコレクションをソートする必要がある場合は、 を使用しますCollections.sort()。このメソッドは、stringcompareToメソッドを使用して要素の順序を決定します。

于 2013-11-06T10:35:28.243 に答える
0

いいえ、いいえ、何かELSEが値を交換します! たとえば、 を呼び出すArrays.sortと、内部のコードArrays.sortは、使用するソート アルゴリズムに必要なすべてのスワップを実行します。メソッドは、compareTo物事を交換する必要があるかどうかを判断する方法を指示するだけです。compareTo負、ゼロ、または正を返すかどうかに基づきます。メソッドはsort、配列の要素を並べ替える方法を解決します。もちろん、これを行うには、compareTo何度も呼び出すことになります。

于 2013-11-06T10:36:11.083 に答える
0

のjavadocを確認してくださいString.compareTo()。英語以外のロケールを使用している場合java.text.Collatorは、文字列比較に使用することをお勧めします。

于 2013-11-06T10:31:03.560 に答える