問題タブ [equality]
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.
c# - エントリの順序に関係なく、2 つの配列の要素を同一視する方法
myArray{a,b,c}
とのような2つの配列を集計しようとしていますurArray{a,b,c,c}
両方の要素に同じ要素があるかどうかを確認したかったのです。たとえば、上記の条件では、2 番目の配列にurArray
余分な 'c' があります。
また、コードは、同じ要素を持っているかどうかに関係なく、要素の順序が重要でない場合、 2 つの配列セットを同等にできるはずです。両方の配列に同じ要素が必要です。つまり、一方に 2 つの「c」がある場合、もう一方にも 2 つの「c」が必要です。そうでない場合、条件は false になります。
だから私がしたことは:
しかし、配列に同じ要素があるかどうかを示す方法がわかりません...
どうすればこれを達成できますか?
c# - 2バイト配列間に拡張メソッド「Equals」が必要です
私はいくつかのバイト[]比較を行っています。
== を試してみましたが、これは基本 Equals と同じです。
拡張メソッドを追加しようとしましたが、オーバーロードされた基本クラスの Equals は同じ引数を取るため、拡張ではなく基本メソッドに移動します。とにかく、Equals 拡張を使用できますか (名前を変更せずに...)または(さらに良い)==演算子を使用しますか?
これが私が実際に比較しなければならないものです:
java - Java でフロートを比較するために == を使用することの何が問題になっていますか?
このjava.sunページ によると==
、Javaの浮動小数点数の等値比較演算子です。
ただし、このコードを入力すると:
私のエディタに入って静的分析を実行すると、次のようになります。
==
浮動小数点値を比較するために使用することの何が問題になっていますか? それを行う正しい方法は何ですか?
java - "" == sが偽であるが、 "" .equals(s)が真である場合
編集 迅速な対応ありがとうございます。本当の質問が何であるかを見てください。今回は大胆にしました。
==と.equalsの違いは理解できます。だから、それは私の質問ではありません(私は実際にそのためのいくつかのコンテキストを追加しました)
空の文字列に対して以下の検証を実行しています。
以前は、dbから値をフェッチしたり、別のノードからオブジェクトを逆シリアル化したりしたときに、2つの文字列インスタンスが同じデータを含んでいたとしても、実際には異なるオブジェクト参照であったため、このテストは失敗しました。
したがって、これらの状況の修正は
私はそれで大丈夫です。それははっきりと理解されています。
今日、これはもう一度起こりましたが、今回のアプリケーションはネットワークをまったく使用しない非常に小さなスタンドアロンアプリケーションであるため、データベースから新しい文字列がフェッチされたり、別のノードから脱セライズされたりすることはありません。
したがって、問題は次のとおりです。
その他の状況:
と
ローカルスタンドアロンアプリケーションの場合?
新しいString()がコードで使用されていないことは間違いありません。
そして、文字列参照が ""になる唯一の方法は、次のようにコード内で直接 ""が割り当てられているためです(またはそれが私が考えたものです)。
どういうわけか(コードをもっと読んだ後、私は手がかりがあります)2つの異なる空の文字列オブジェクト参照が作成されました、私は方法を知りたいです
jjnguysの答えの行の詳細:
バイト!
編集:結論
私はその理由を見つけました。
jjnguyの提案の後、私はコードをさまざまな目で見ることができました。
有罪のメソッド:StringBuilder.toString()
新しいStringオブジェクトが割り当てられ、初期化されて、このオブジェクトによって現在表されている文字シーケンスが含まれます。
ドー!..。
謎が解けた。
このコードは、StringBuilderを使用して、増え続ける文字列を処理します。ある時点で誰かがしたことが判明しました:
と使用
ps最近、CodingHorrorを読みすぎましたか?または、なぜここに面白い動物の写真を追加する必要があると感じるのですか?
java - equals() メソッドの最適化
equals()
メソッド (さらに言えば、メソッドも)compareTo()
は、パフォーマンスのホットスポットになる可能性があります (たとえば、高トラフィックでHashMap
)。これらの方法が必要であることが判明した場合に、これらの方法を最適化するために人々がどのようなトリックを採用したのか疑問に思っていました.
たとえば、IntelliJ IDEA は以下を生成します。
equals()
他に、優れたパフォーマンスのメソッドを作成するためのガイドラインになり得るものはありますか?
c# - SQLでC#のような動作で同等性を比較するにはどうすればよいですか?
SQLの値の同等性をnullと比較する方法は?
C#に精通している方のために、null許容値を比較した結果を次に示します。
SQLで見つけた最も簡単な解決策は、null許容フィールドをいくつかの番兵値(例:'scoobydoo')に合体させてから、それらを比較することです。
しかし、誰かが番兵の値を使用している場合、それは明白な恨みです。AがたまたまNULLで、Bが'scoobydoo'である場合、上記の式はtrueになります。
これはまさに、上記のコードのロジック(T-SQL UPDATEトリガー)を要求する私の目的です。
SQLでC#のような動作で同等性を比較するにはどうすればよいですか?
[編集:ここで答えを見つけました]
コードをテストしました(Postgresの素敵なブールサポート、FTW!):
[編集:Jonのコードをテストしました。平等に関する彼の答えは、半ば作業のようなものです(とにかく、nullをfalseとして扱います)が、不平等に関する彼の答えは爆破されます]
コードをテストしました(Postgresの素敵なブールサポート、FTW!):
[編集:これに関連する別の質問を投稿しました]
[編集:不等式比較のための非機能セマンティクスに関するJonの問い合わせに基づいて投稿された結果]
不平等のセマンティクスが機能しないため、別の質問を投稿するように促されました:-)
[編集:ジョンの新しい答えをテストしました]
結果:
c# - LINQ 内で分の精度で Datetime 値が等しいかどうかを判断する
分精度を使用して、2 つの日時値を比較して等価性 (まったく同じ) を判断する必要があります。これが最善の方法でしょうか? 私の日付には秒とミリ秒を含めることができますが、数分までしか考慮したくありません。