問題タブ [comparator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - String equals() が false を返すのはなぜですか (カスタム Comparator が関与)?
TreeSet で文字列を長さでソートするために、TreeSet で使用する非常に単純なカスタム Comparator を作成しました。
(s1.equals(s2))
2 つの文字列 s1 と s2 に同じ値が含まれている場合でも、 false を返す理由を見つけるのに苦労しています。
Eclipseの「変数ビュー」は、文字が両方の文字列で同じであることを示していますが、「id」は異なります.equalsがFalseを返すのはそのためだと思います. ところで、それは何をid=" "
表しているのですか?String オブジェクト データへのポインタのようなものでしょうか。
ここで、このカスタム Comparator を使用します。
substring()
メソッドで構築されたいくつかの文字列で組み合わせを埋めます。
前述の問題により、組み合わせには重複が含まれます。
この TreeSet にカスタム Comparator を設定しないと、重複はもうありません (それが私が望むことです) が、アルファベット順に並べ替えられますが、これは正常ですが、私の目的ではありません。
java - 最小限のコード、短い式
次のパラメータが与えられます。
このバージョンの最小限のコードが必要です。
何を変更する必要がありますか?
mips - MIPS レジスタ コンパレータ
MIPS で 2 つの入力レジスタが与えられた場合: $t0、$t1
ブランチを使用せずに、どちらが大きいかをどのように判断しますか?
java - 警告なしのジェネリック インターフェイスのコンパレータ
与えられた:
と
この組み合わせは機能しますが、生の型に関する警告が表示されます。型引数を追加するさまざまな方法を試しましたが、試したすべての組み合わせでコードが壊れます。
c++ - STL セットにコンパレータを使用する
次のコードを確認してください。
出力は次のとおりです。
これは私にとって衝撃的です。出力は次のようになると思いました(そして期待しています):
の実行前はleagues.insert("ALeague");
、 と がleagues
含まれ"aLeague"
てい"BLeague"
ます。私の質問は、実行中にleagues.insert("ALeague");
なぜマシンが処理するの"ALeague" == "aleague"
ですか? 私の理解によると、 には要素がありませ"ALeague"
んleagues
。に挿入"ALeague"
する必要がありますleagues
。コンパレータは、どこに配置するかを決定する必要があり"ALeague"
ます。
前もって感謝します。
PS: C スタイルのキャストを使用しているからといって、私を殴らないでください。:P 私は入力するのが面倒ですstatic_cast
。
java - Java:比較可能vsコンパレータ
重複の可能性:
compare()とcompareTo()
の違いJava:ComparableとComparatorの実装の違いは何ですか?
ComparableとComparatorの主な違いは何ですか。
どのシナリオでどちらが他よりも優先されますか?
ありがとう
更新-例との良いリンク!!
http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html
java - 2 つのコンパレータを使用する最良の方法は何ですか?
私は現在、ある間隔でOHLCデータを取得するために使用される次の構造を持っています
marketDataItem または marketDataGroup にコンパレータを配置する方が良い/良い/速い/少ないメモリですか?
java - Java Point オブジェクトの ArrayList をソートする方法
Point クラスを使用して (x,y) 座標のリストを管理しており、X の順に並べ替える必要があります。
Comparator を実装する新しいクラス PointCompare を作成するためにオンラインで読みましたが、これがどのように機能するかがわからないため、sortByXCoordinates メソッドでコンパイラ エラーが発生します。
助けていただければ幸いです。コメントは大歓迎です。事前に感謝します。これが私のコードの一部です:
java - ダブルタイプのコンパレータ
私は次のコードを書きました:
2 つの倍精度数が3.2 - 3.1
あるとします。 の差は です0.1
。ただし、数値を int にキャストすると、違いは になり0
ます。これは正しくありません。
したがってcompare()
、int ではなく double を返す必要があります。問題は、私のgetX
フィールドが倍精度であることです。どうすればこの問題を解決できますか?
java - コンパレータとequals()
TreeSet
ドメインロジックでソートされた要素が必要だとします。このロジックでは、等しくない要素の順序は関係ないため、compareメソッドは0を返すことができますが、この場合、それらをに入れることはできませんでしたTreeSet
。
だから、質問:私がこのようなコードからどのような不利な点があるか:
更新:
Ok。@SPFloyd-seanizerや他の人が言ったように、それが常にメソッドとの間の一貫性である必要がある場合equals()
。インターフェイスを削除してこのロジックを移動すると、より良い、またはさらに良いと思いますか(カプセル化を壊さずに実行できます)?したがって、次のようになります。hashcode()
compareTo()
Comparable
Comparator
アップデート2:
安定ソートが必要ない場合System.identityHashCode(x)
よりも良いでしょうか?hashCode()