質問

1 つのリンクされたリストを実装する必要がありますが、オブジェクトを適切な位置に配置する必要があります。特定のクラスと組み合わせて使用​​する場合はすべて問題ありませんでしたが、ユニバーサルにしようとすると、insert メソッドの引数が Object になったときに問題が発生しました。Objectを正しい位置に入力したいときはCompareToメソッドを使えばいいのですが、Objectクラスにメソッドがありません!問題は、実際の型が分からない状態で 2 つのオブジェクト要素を比較する方法です。汎用クラス型を使用する必要があるでしょうか?しかし、CompareTo についてはどうでしょうか?それともElementクラスと組み合わせてそこにCompareToを配置するのでしょうか?それは実現可能だと思います。:)

public void insert(Object o)
{
   Element el = new Element(o);
   //  initializing and setting iterators

   while(!it.isDone() && ((it.current().getValue())).CompareTo(o)<0) 
                         // it.current() returns Element of List
   {    
      //move interators
   }
//...
}
役に立ちましたか?

解決

次の 2 つのオプションがあります。

  • 各オブジェクトのクラスを実装する java.lang.Comparable そこに各クラスの比較ロジックを記述し、受け入れるだけです Comparable の代わりに Object そして電話する compareTo()
  • を作成します comparator リストのプロパティを作成し、構築時に設定します。具体的なコンパレータ(の実装) java.util.Comparator) リストのこの特定のインスタンスに含まれるオブジェクトを比較する方法を知っている必要があります。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top