問題タブ [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.

0 投票する
3 に答える
461 参照

postgresql - PostgreSQL:一部のデータ型にDISTINCTを使用できません

_sample_table_delme_data_filesいくつかの重複を含むというテーブルがあります。そのレコードを重複せずに次の場所にコピーしたいdata_files

問題は、PostgreSQLがbox3dタイプを比較(または順序付け)できないことです。宛先テーブルに個別のみを取得できるように、このような順序付け演算子を指定するにはどうすればよいですか?

前もって感謝します、

アダム

0 投票する
5 に答える
34179 参照

java - 標準 API に自然なコンパレーターは存在しますか?

オブジェクトの自然順序付けまたはカスタム順序付けのいずれかを使用できる戦略パターンの一部としてコンパレータが必要です。自然順序付けのケースでは、単純なコンパレーターを書きました。

十分に単純に思えますが、標準 API で誰かが知っているかどうか疑問に思っていました。TreeMap を調べたところ、そのようなクラスがなくても実行されるため、そのコードが作成されたときの答えは明らかではありませんが、後で追加された可能性があります。

0 投票する
3 に答える
17148 参照

java - ジェネリック型パラメーターが「実装」ではなく「拡張」と比較できるのはなぜですか?

配列から重複要素を削除するジェネリック関数を書いてみました。

ご覧のとおり、Comparableインターフェイスで定義されたcompareTo()メソッドで要素を比較しているため、int[]配列のようなプリミティブ型を渡すことはできません。

最初の行(メソッド宣言)に気づきました:

どうして「同等の拡張」と書かれているのですか?

Comparableはインターフェースですが、なぜ「Comparableを実装」しないのですか?ジェネリック関数を書いたのはこれが初めてなので、そのような詳細については少し混乱しています。(不思議に思うと理解できなくなります。)

編集:このトピックに関連するこの記事を見つけました。

http://www.tutorialspoint.com/java/java_generics.htm

0 投票する
3 に答える
645 参照

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>{{

}

0 投票する
4 に答える
11552 参照

java - セット内を検索する方法(コンパレータを使用)

要素を手動で反復せずにセットを検索したいのですが、Collections.search(myset、target、new ComparatorThing())を実行するメソッドがないようです。私は何かを見ていませんか?

ありがとう。

編集:

  • 要素の自然な順序とは別のフィールドを探しています。
  • 手動の回避策として、次の静的な方法を使用しました。とにかくコンパレータのカスタムフィールドを使用して他の人について推測することはできないので、大丈夫です。
0 投票する
2 に答える
472 参照

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) は複数の値を返します。

誰でも私を助けることができますか?

どうもありがとうございました。

0 投票する
5 に答える
6908 参照

java - コンパレータと正規表現でbinarySearchを使用する

リストをループして手動でチェックするList<String> 代わりに、binarySearchを使用してこれを実行したいのですが、その方法がわかりません。

古い方法:

代わりに私はこのようなものが欲しいです:

誰かが私がこのコンパレータを書くのを手伝ってもらえますか?
binarySearchを使用する代わりにこれを行うためのより良い方法はありますか?

0 投票する
2 に答える
409 参照

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メソッドの間に問題があると思います。

どんな助けでも大歓迎です。

よろしく、モハメド

0 投票する
3 に答える
9368 参照

java - TreeSet と equals 関数

equals特定の基準 (基準 A) に基づいて機能を実装した Java Bean オブジェクトがあります。別の基準 (基準 B) に基づいて一意のオブジェクトを識別する必要があります。equals関数は条件 A を使用するため、使用できませんHashSet。そこで、基準 B に基づくTreeSet私のカスタムで使用することを考えました。私の質問は、このようなことをしてもよいですか? Comparatorこのアプローチに問題はありますか?

ありがとうございました。

0 投票する
1 に答える
1285 参照

java - ArrayList にコンパレータを実装する Java

私はJavaを初めて使用するので、これはおそらく非常に簡単な質問です。

指定されたキーの自然順序に基づいてArrayListクラス内をソートしたい。MediaLib

クラスcompareTo(MediaInterface, key)にあるコンパレータ ( )の使用方法がわかりません。Mediaこれについて最善の方法は何ですか?