問題タブ [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 投票する
1 に答える
884 参照

objective-c - sortedArrayUsing および NSComparison Result : これらが実際にどのようにソートされているのかわかりません

配列内のオブジェクト/要素をソートするさまざまな方法を検討していますが、実際のソートがどのように行われるかはわかりません。混乱の大きなポイントは、あるオブジェクトを別のオブジェクトと比較するだけの場合、「並べ替え」メソッドがどのように効果的であるかということだと思います。

配列内に値 a、g、b、d、z、s、h がある場合、一度に 2 つの値を見て、アルゴリズムがこのリストをどのようにアルファベット順に取得しているかがわからない。

どんなイルミネーションも素晴らしいでしょう。

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

java - Generics、Comparator、およびソート エラーを含む Java クラス階層

私は自分の問題を解決する何かを見つけるために周りを見回してきましたが、今まで運がありませんでした. 私は次のクラスを持っています:

そしてテストクラス:

コンパイラは次の行でエラーを出します

と状態

OK、友人の助けを借りて数時間後、問題はsort(List<T> list, Comparator<? super T> c)抽象クラス Sort の Collections# にあることに気付きましたComparator<? extends T>

2 つのモデルがあるため、ジェネリックを使用します。1 つのモデルのスーパー クラスは 35 のクラスによってサブクラス化されたジェネリック抽象であり、2 番目のモデルには実際には 2 つの異なるスーパー クラスがあり、それらを組み合わせて再び 35 のクラスによってサブクラス化します。これらの階層は与えられたものであり、それらを変更するために私にできることは何もありません。

ここでのモデルは非常に単純ですが、要点はわかります。また、T のタイプに応じて、あるソーターまたは別のソーターを返すファクトリもあります。

誰でも助けて、私の問題の解決策を提供してもらえますか (つまり、ジェネリック リストをソートすることです。パラメーターの型は、ジェネリック スーパークラスまたはそのサブクラスの 1 つにすることができます)。

よろしくお願いします、 ドミ

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

c# - コンパレータを備えたJavaのPriorityQueueに相当するC#XNA?

タイルのボードにダイクストラ法を実装しています。すべてのタイルを優先キューに保存し、開始位置からの距離で並べ替えます。Javaでは、これは次のようになります。

Queue<Point> pq = new PriorityQueue<Point>(new Comparator() { /* sort by distance from start */ });

C#XNAで同等のものは何でしょうか?C#にはクラスがありますが、それはオブジェクトPriorityQueueに対してのみ機能し、オブジェクトは機能しません。IComparablePoint

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

java - Java ジェネリック: Collections.max() シグネチャと Comparator

コレクションのget と put の原則を理解しています。メソッドが型 T を書き込むコレクションを受け取る場合、パラメーターは でCollection<? super T>ある必要がありますが、型 T を読み取る場合、パラメーターは である必要がありますCollection<? extends T>

Collections.max()しかし、誰かが署名を説明してもらえますか:

特に、なぜComparator<? super T>代わりにComparator<? extends T>?

0 投票する
19 に答える
122391 参照

java - Comparable と Comparator をいつ使用するか

フィールドで並べ替える必要があるオブジェクトのリストがあります。たとえば、スコアです。あまり考えずに、Comparator を実装する新しいクラスを作成しました。これはタスクを実行し、機能します。

これを振り返ってみると、Comparator を実装する新しいクラスを作成する代わりに、クラスに Comparable を実装させるべきかどうか疑問に思っています。スコアは、オブジェクトが並べられる唯一のフィールドです。

  1. 私がやったことは実践として受け入れられるでしょうか?

  2. 「最初にクラスに Comparable を実装させ (自然な順序付けのために)、別のフィールド比較が必要な場合は、Comparator を実装する新しいクラスを作成する」という正しいアプローチはありますか?

  3. 上記の(2)が当てはまる場合、クラスに Comparable を実装させた後にのみ Comparator を実装する必要があるということですか? (私が元のクラスを所有していると仮定します)。

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

sorting - ジャスパーレポートのコンパレーター式によるクロスタブの並べ替え

カスタム スキームに従って、クロス タブで動的列を並べ替えようとしています。

ドキュメントで、 comparatorExpression: Crosstab グループ バケット コンパレーター式についての言及を見つけました。この式の結果は、バケットを昇順または降順でソートするために使用されます。比較式が指定されていない場合は、自然順序が使用されます。

しかし、私は表現がどのように見えるべきか理解していません。どうにかして通常のJavaコンパレータを使用できますか? 誰かが例を共有できますか?

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

c++ - ポインタのC++ qsort配列がソートされない

C++ で、可変長レコードでいっぱいのバッファーをアルファベット順に並べ替えようとしています。以前、これを実装する方法を尋ねたところ、レコードへのポインターの配列をソートするように言われました。ポインターの配列を設定しましたが、各ポインターがレコードの先頭を指していることに気付きましたが、レコードがいつ停止したかを知る方法はありません。したがって、配列内の各ポインターが指すレコードを出力しようとすると、ポインターごとに、指すレコードから始まるすべてのレコードのバッファー全体が取得されます。(たとえば、バッファーが "Helloworld" を保持し、各文字にポインターがある場合、ポインターの配列を出力すると "Helloworldelloworldlloworldloworldoworldworldorldrldldd" が生成されます。) 明らかに、これは私が望んでいるものではありません。また、qsort はポインターの配列でも機能していないようです。デバッグすると、ポインタが指すメモリ空間は、ASCII文字セットの一部ではなく、入力ファイルに含まれていない非常に奇妙な文字を保持しているようです。私は非常に混乱しています。以下は私のコードです。今得た奇妙な結果を得ることなく、どうすればこれを行うことができますか? どうもありがとう、bsg。

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

java - ハッシュテーブル比較の問題

こんにちはみんな私はコンパレータb4を書いたことがなく、本当の問題を抱えています。ハッシュテーブルを作成しました。

Hashtable のコンパレータの書き方を誰か教えてもらえますか? 私が見た例では、equals とすべてをオーバーライドしていますが、手がかりがありません。以下のコードは私のものではありませんが、私が見つけた例です。ハッシュテーブルの重要な点は、このようにできないことを意味します。

0 投票する
10 に答える
63621 参照

java - null 値を持つコンパレータ

座標間の距離に基づいて住所のリストをソートするコードがあります。これは、カスタム コンパレータを使用して collections.sort を介して行われます。

ただし、座標のない住所がリストに含まれていると、NullPointerException が発生することがあります。これを修正するための最初のアイデアは、少なくとも 1 つの座標が null である住所の距離としてコンパレーターが 0 を返すようにすることでした。これにより、リスト内の「有効な」要素の順序が崩れる可能性があるのではないかと心配しています。

コンパレーターの null データに対して '0' 値を返すのは問題ありませんか、それともこれを解決するよりクリーンな方法はありますか?

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

c# - リスト<>独自の比較者

要素が次のリストがあります:

リストを優先度で並べ替えることができる独自の比較機能を実装するにはどうすればよいですか?SortredListを試してみましたが、重複したキーは許可されていません:(

助けてくれてありがとう!