問題タブ [comparable]
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.
java - Java:カスタムオブジェクトでいっぱいのArrayListにcontainsを使用するには、equalsをオーバーライドするか、Comparable /Comparatorを実装する必要がありますか?
私はこれらでいっぱいのArrayListを持っています:
私はこれでそれを照会します:
自分の中に重複する要素が見つかりtransitionStatesArray
ました。これはなぜですか?
これらのi、jと方向の値を使用して、マトリックス内の一意の値を埋めていますが、ここに重複があります。
java - 同等のインターフェースの実装
この試験問題を見つけたのですが、理解できません :
以下は、 Comparable インターフェースを実装する不自然な部分クラスを示しています。この考案されたクラスの唯一の目的は、そのインスタンスを特定の文字列と比較することです。
クラスを終了するには、クラスで記入する必要があるものが 2 つあります。クラスは次のとおりです。
パート1は単に次のものに対応すると想定しています:
パート 2 では、彼は compareTo メソッドの実装を期待していると思いますが、これを適切に実装する方法がよくわかりません。
これを修正するにはどうすればよいですか?
c# - オブジェクトが他のタイプと比較可能かどうかを確認できますか?
次のようなコードを書きたいと思います。
これは可能ですか?そうでない場合、これを判断する別の方法はありますか?
java - PriorityQueueでエントリシーケンスを維持する
JavaでPriorityQueueを利用しようとしています。
いくつかのカスタムオブジェクトがあり、次のようにキューに追加します。
この時点で、PriorityQueueからClassCastExceptionを取得しないようにするには、PetオブジェクトがComparableを実装する必要があることに気付きました。そこで、PetにComparableを実装させてから、copmareTo(obj)メソッドをオーバーライドして0を返します。
しかし、奇妙なことはここにあります。私が...
pet1、pet2、pet3の順に追加したのに、poll()を最初に呼び出したときに、ペットのシーケンスが並べ替えられたのはなぜですか?そうすると、エントリシーケンスが保持されないため、このすべてがキューではなくなりますね。
ComparableインターフェースとcompareTo(obj)メソッドに関係しているのではないかと思います。しかし、必要なのはエントリシーケンスを維持することだけなので、実際に何かを比較したり、何かを並べ替えたりする必要はまったくありません。
キュー内のエントリシーケンスを維持するにはどうすればよいですか?
ありがとう!
java - コレクション内の 2 つの異なるオブジェクトを並べ替えるには?
CLassA と CLassB という 2 つのクラスがあるとします。また、各クラスが保持する要素の数など、共通の属性が 1 つあります。
ClassA と CLassB のオブジェクトからコレクションを作成し、その属性で並べ替えるにはどうすればよいですか (降順の昇順は関係ありません)。
型のコレクションを作成しましたが、Comparable Interface を実装しようとすると、そのメソッドにアクセスできません (たとえば、要素の数を返す get)。
どのような解決策がありますか?
ご協力いただきありがとうございます!
java - Collections.sort(object) を使用した Long 値の比較
オブジェクトの単純なリストを長い順に並べ替えようとしています - 以下は、長い文字列の 1 つが小さい番号で始まるという理由だけで一番上にプッシュされるため、機能しません。だから私はこれらを実際の長い値で直接ソートする方法を探しています
現在の obj の実装は次のようになります。これを使用しているクラスでは、 Collections.sort(trees); を呼び出します。
java - クラスを拡張し、一般的なJavaデータ構造で比較可能
宿題のために、私はAVLツリーデータ構造を作成するように割り当てられました。「add」メソッドを作成して、一般的なデータをツリーに追加しようとしています。私の問題は、割り当てで「BinaryTree」と呼ばれるクラスを拡張する必要があることです。addメソッド内で、compareToメソッドを使用する必要があります。これは、Comparableも拡張する必要があることを意味すると思います。私はオンラインで調べましたが、どうやら2つのクラスを拡張できないため、これが問題になります。AVLツリークラスに独自のcompareToメソッドを作成しようと決めましたが、<と>をジェネリック型に適用できないと表示されます。ヒントや簡単な回避策はありますか?それとも私はただ愚かですか?
ありがとう-スティーブ
java - Java:Comparableがnullでないかどうかをチェックすると、NullPointerExceptionが返されます
私はこのコードに大きな問題があり、それを引き起こす方法がわかりません:
何らかの理由で、tree.find(indexreg)をnullと比較すると、NullPointerExceptionが発生します。これは大学のプロジェクトなので、Javaで提供されているものではなく、独自のバイナリツリー実装を使用する必要があります。treeはBinarySearchTreeであり、indexregはComparableオブジェクトであり、すでに初期化されています。これは、BinarySearchTreeクラスで検索するためのコードです。
ツリー内のオブジェクトを検索し、見つからない場合はnullを返します(空のComparableオブジェクトを返すことはできないと思います)。グーグルを試してみましたが、役に立つ答えが見つかりませんでした。このコードを機能させる方法を知っている人はいますか?
java - Javaで汎用`max(Comparable a, Comparable b)`関数を実装する方法は?
2 つの s を使用する一般的な max 関数を作成しようとしていますComparable
。
これまでのところ、
これはコンパイルに失敗します
これが言っていると思うのは、?
inComparable<?>
がパラメーター a の 1 つのタイプとパラメーター b の別のタイプとして解釈される可能性があるため、それらを比較できないということです。
この穴から抜け出すにはどうすればいいですか?