問題タブ [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.
postgresql - PostgreSQL:一部のデータ型にDISTINCTを使用できません
_sample_table_delme_data_files
いくつかの重複を含むというテーブルがあります。そのレコードを重複せずに次の場所にコピーしたいdata_files
:
問題は、PostgreSQLがbox3d
タイプを比較(または順序付け)できないことです。宛先テーブルに個別のみを取得できるように、このような順序付け演算子を指定するにはどうすればよいですか?
前もって感謝します、
アダム
java - 標準 API に自然なコンパレーターは存在しますか?
オブジェクトの自然順序付けまたはカスタム順序付けのいずれかを使用できる戦略パターンの一部としてコンパレータが必要です。自然順序付けのケースでは、単純なコンパレーターを書きました。
十分に単純に思えますが、標準 API で誰かが知っているかどうか疑問に思っていました。TreeMap を調べたところ、そのようなクラスがなくても実行されるため、そのコードが作成されたときの答えは明らかではありませんが、後で追加された可能性があります。
java - ジェネリック型パラメーターが「実装」ではなく「拡張」と比較できるのはなぜですか?
配列から重複要素を削除するジェネリック関数を書いてみました。
ご覧のとおり、Comparableインターフェイスで定義されたcompareTo()メソッドで要素を比較しているため、int[]配列のようなプリミティブ型を渡すことはできません。
最初の行(メソッド宣言)に気づきました:
どうして「同等の拡張」と書かれているのですか?
Comparableはインターフェースですが、なぜ「Comparableを実装」しないのですか?ジェネリック関数を書いたのはこれが初めてなので、そのような詳細については少し混乱しています。(不思議に思うと理解できなくなります。)
編集:このトピックに関連するこの記事を見つけました。
java - arrayListの2つのキーを使用して検索します
オブジェクトのArrayListで高速検索を実装したいと思います。これらのオブジェクトは、とりわけ、int oldId、int newId、およびintinListで構成されます。
ここで、リストのCollections.binarySearchを使用してバイナリ検索を実装しようとしましたが、問題は、対応するオブジェクトからnewIdを取得するために、oldIdとinListを使用して検索する必要があることです。例:oldId=9およびinList=1で、別の場所に割り当てられているnewIdを取得しようとしています。基本的にoldId-newIdをマッピングし、それらをグループ化しました。oldIdが重複している可能性がありますが、それらは異なるリストにあり、一意のnewIdを持っている必要があります。
これらのマップオブジェクトにハッシュマップを使用する方が良いと思いますか?または、oldIdおよびinList情報からnewIdを取得するための解決策(おそらくオブジェクトのコンパレーター)はありますか?高速検索アルゴリズムも探しています。
助けてくれてありがとう、私はアイデアに感謝します。
これは私が二分探索のために書いたコンパレータですが、ここにinList情報を追加する方法がわかりませんでした。
public class CompareTermId implements Comparator
<MObj>
{{
}
java - セット内を検索する方法(コンパレータを使用)
要素を手動で反復せずにセットを検索したいのですが、Collections.search(myset、target、new ComparatorThing())を実行するメソッドがないようです。私は何かを見ていませんか?
ありがとう。
編集:
- 要素の自然な順序とは別のフィールドを探しています。
- 手動の回避策として、次の静的な方法を使用しました。とにかくコンパレータのカスタムフィールドを使用して他の人について推測することはできないので、大丈夫です。
sql - SQLで「コンパレータ」を書く
次の問題があります。
次のルールに従って、テーブル A の最上位の行を見つけます。
表 A
列: V_Date Date、Type int、H_Date Date
1) 最高の V_Date を見つける
2) V_Date が同じ場合、優先度が最も高い行を見つけます。ここで、優先度は表 B で列 Type int、Priority int で定義されています
3) V_Date と Priority が同じ場合、次のものを見つけます最高の H_Date (一意であることが保証されます)
優先度は明確ではないため、max (prio) は複数の値を返します。
誰でも私を助けることができますか?
どうもありがとうございました。
java - コンパレータと正規表現でbinarySearchを使用する
リストをループして手動でチェックするList<String>
代わりに、binarySearchを使用してこれを実行したいのですが、その方法がわかりません。
古い方法:
代わりに私はこのようなものが欲しいです:
誰かが私がこのコンパレータを書くのを手伝ってもらえますか?
binarySearchを使用する代わりにこれを行うためのより良い方法はありますか?
java - コンパレータを埋め込みクラスとして使用すると、マザー クラス ( clone で初期化される) フィールドが比較メソッドで表示されない
私は、CCMN と呼ばれるサーバー間プロトコルと、各サーバーによってキャッシュされるメッセージの異なるドロップ ポリシーを開発しました。PEERSIM シミュレーターは、CCMN プロトコルを使用してテンプレート ノードを作成し、このテンプレート ノードを複製します。
CCMN クラスには、ドロップ ポリシーの実装に必要な状態を維持するさまざまなデータ構造が含まれています。たとえば、Pmapはコンテンツ識別子をコンテンツ オブジェクトに解決し、freqはコンテンツ オブジェクトが使用された回数に解決します。
これらのデータ構造の初期化は、CCMN の clone メソッドで行われます。ドロップ ポリシーをサポートするために、使用するポリシーに対応するコンパレータで初期化された priorityQueue を使用します。クローンメソッドでは:
lfu less_frequent=新しい lfu(); av.raw_drop=new PriorityQueue(1, less_frequent); コンパレータは次のように宣言されます。
public int compare(String s0, String s1) { if(freq.get(s0) > freq.get(s1)) return 1; そうでなければ if(freq.get(s0) < freq.get(s1)) return -1; それ以外の場合は 0 を返します。} }
問題は、呼び出し時に NullPointerException 例外が発生することです。
デバッグにより、追加は最初の要素に対して機能することがわかりましたが、2 番目の要素が追加されると例外が発生します。コンストラクターで定義された変数は明確に定義されていますが、 freq変数 (および clone メソッドで初期化された他の変数) がnullに等しいことがわかった変数をチェックすることで、compare メソッドへの例外を追跡しました。
さらに、add呼び出しの前にfreqが適切に初期化されていることを確認します。
埋め込みクラスとしてのコンパレータの定義とcloneメソッドの間に問題があると思います。
どんな助けでも大歓迎です。
よろしく、モハメド
java - TreeSet と equals 関数
equals
特定の基準 (基準 A) に基づいて機能を実装した Java Bean オブジェクトがあります。別の基準 (基準 B) に基づいて一意のオブジェクトを識別する必要があります。equals
関数は条件 A を使用するため、使用できませんHashSet
。そこで、基準 B に基づくTreeSet
私のカスタムで使用することを考えました。私の質問は、このようなことをしてもよいですか? Comparator
このアプローチに問題はありますか?
ありがとうございました。
java - ArrayList にコンパレータを実装する Java
私はJavaを初めて使用するので、これはおそらく非常に簡単な質問です。
指定されたキーの自然順序に基づいてArrayList
クラス内をソートしたい。MediaLib
クラスcompareTo(MediaInterface, key)
にあるコンパレータ ( )の使用方法がわかりません。Media
これについて最善の方法は何ですか?