問題タブ [icomparable]

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 投票する
2 に答える
8516 参照

c# - JavaコンパレータはC#で同等のものをオーバーライドします

次のクラスをJavaからC#に変換したいと思います。

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

java - 同等のジェネリックの拡張

さまざまなツリー構造 (標準のバイナリ ツリー、赤黒ツリー、B ツリーなど) を実装する Java のテンプレート ベースのクラスを開発しています。私の考えは、Java Collections のさまざまなリストのようにすることです。これは、指定されたツリーによって展開される 1 つのインターフェイス クラスです。しかし、私は奇妙な問題で壁にぶつかりました:

Java は、オブジェクトが異なるタイプであると考えているようです...どうすれば修正できますか?

これが私のコードの一部です:

Tree.java

BSTree.java

編集:あなたのアドバイスのおかげで、エラーの数を5に減らすことができました。ここに: javac -d ../bin *.java

さて、私のコードにはそれがNode<T>あり、Tree<T>どこに欠けていましたか。しかし、まだ何が問題なのですか?

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

c# - IComparableを打ち抜く手段はありますか大量のコードを複製せずに演算子がオーバーロードしますか?

を実装するタイプがたくさんありますIComparable<T>。これらのタイプはそのインターフェースを実装するため、次のオーバーロードを提供することは理にかなっています。

これは何度も繰り返すコードがたくさんあります。std::rel_opsこれらの実装を容易にする抽象クラスまたは何か(C ++など)を作成する方法はありますか?

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

c# - C#でIComparableを受け入れるジェネリックメソッドのdouble.NaNの処理方法

一般的なGetMinimum方法があります。string[]IComparableタイプの配列を受け入れます(またはである可能性がありますdouble[])。double[]このメソッドを実装してdouble.NaN値を無視するにはどうすればよいですか?(私は良い習慣を探しています)

この配列を渡すとき

double.NaNを返します!

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

c# - double.NaNおよびdouble.NegativeInfinityのCompareToの動作

私はC#(.Net 4)でいくつかの統計操作を行っていましたが、メソッドとdouble[]で奇妙な動作を見つけました。このコードを試してみると:CompareTodouble.NaN

それdouble.NaNはさらに小さいことを意味しdouble.NegativeInfinityます!なぜこんな感じなのか誰か説明できますか?

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

c# - 列を並べ替えるには IComparable が必要です

DevExpress xtragrid の列の 1 つで、並べ替え、グループ化、またはフィルタリングが行われていません。同様の質問への回答は、IComparable を実装する必要があることを示唆していますが、実装すると列にまったく表示されなくなりました。

私は何を間違えましたか?

アップデート:

DevExpressで尋ねた...

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

c# - IComparable.CompareToはSortでnullと比較します

と呼ばれるIComparable<T>.CompareToタイプの助けを借りてリストをソートしたいと思います。私が書いたTPath

驚いたことに、この方法

クラスから

から呼び出されSort()ますother==null。さらに驚いたことに、最初のコードブロックで、2番目の例外がスローさshortestれます。これは、並べ替えの前ではなく、並べ替えの後にnull値が含まれていることを意味します。

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

c# - IComparable を使用したオブジェクトの並べ替え

IComparableカスタムオブジェクトにインターフェースを実装して、List.Sort()アルファベット順にソートできるようにしようとしています。

私のオブジェクトに_nameは、文字列型であるというフィールドがあり、それに基づいてソートしたいと考えています。これが私が実装した方法です:

私が何か間違ったことをしたのか、それとも単に文字列CompareToが機能するのかはわかりませんが、基本的に私のリストは次のようにソートされました:

  • アップグレードのテスト
  • テスト アップグレード 10
  • テスト アップグレード 11
  • テスト アップグレード 12
  • テスト アップグレード 13
  • テスト アップグレード 14
  • テスト アップグレード 15
  • テスト アップグレード 2
  • テスト アップグレード 3
  • テスト アップグレード 4
  • テスト アップグレード 5

私はそれらを次のようにソートしたい:

  • アップグレードのテスト
  • テスト アップグレード 2
  • テスト アップグレード 3
  • ...等
0 投票する
2 に答える
3939 参照

c# - リストIEnumerableへ

暗黙的にintをIComparableにキャストできます。リストまたは配列をIEnumerableにキャストすることもできます。

しかし、なぜリストをIEnumerableに暗黙的にキャストできないのでしょうか。

これを.netFramework4.5とVisualStudio2012Ultimateでテストしました。

テストするコード:

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

c# - Sort() および CompareTo() メソッドの内部動作

CompareTo()メソッドが内部でどのように機能するかを理解しようとしてきましたが、失敗しました。このサイトを検索していくつかの投稿を読みましたが、この件に関して MSDN で見るべきものはすべて見たと思いますが、理解できないようです。MSDN の例:

これは、CompareTo()メソッドの実装の MSDN の例です。私はこれを理解しています、私はインターフェースがどのように機能するかを理解しています。私が正しく理解していれば、メソッドIComparableを使用するときにこれが呼び出されます。ArrayList.Sort()

私が理解していないのは、プログラムがCompareTo(object obj)メソッドの引数を渡すのはいつですか? 言い換えれば、Sort()メソッドはどのように機能しますか? つまり、このコードは温度のインスタンスを温度の別のインスタンスと比較していますが、比較を行うために、プログラムはいつ、またはどのようにして 2 番目の温度インスタンスを取得するのでしょうか? 私の質問が理にかなっていることを願っています。

プロセスを画面に出力しようとしたCompareTo()ので、出力をリバースエンジニアリングできるかもしれませんが、さらに混乱しました。

編集:一歩一歩進んだら、自分自身をよりよく説明できるかもしれません。3 つの温度オブジェクトがあるとします: 34、45、21ArrayListです。を呼び出すArrayList.Sort()と、CompareTo()メソッドは のように呼び出され34.CompareTo(45)ますか? そして45.CompareTo(21)?返される整数は、最初の比較では 1 で、2 番目の比較では -1 でしょうか? CompareTo()また、obj (パラメーター) が null の場合にのみ 1 を返すようにメソッドを定義した場合、これらの整数はどのように返されるのでしょうか? -1 または 0 を返すものは何も定義していません。既に実装されているメソッドを実装しているようなものです。CompareTo()-1、0、および 1 を返すように定義済みのメソッドを定義する。