1
C++のようにJavaで優先度キューを使用する方法がわかりません。 Cでは ++我々はこのようにそれを行うことができます。優先キューの比較 - java vs C++
priority_queue<object*, vector<object*>, compareClass>
をだから我々はこのようなクラスを持っている場合:
class Foo{
public:
int number1;
int number2
Foo(){};
};
我々は2つだけにすることによって2人の異なる考え方によってそれらに比較するために、2つの異なるキューを使用することができますcompareClasses。 Javaで
私はこのようなキューを作成するとき、私は、問題の原因を得た:
PriorityQueue<Foo> pq = new PriorityQueue<Foo>();
私は一度だけのcompareTo機能を無効にすることができます。私はこのようなオーバーライド何か作ることができることを知っている :プログラムのこの場合の共犯で
class Foo implements Comparable<Foo>{
public int number1;
public int number2;
@Override
public int compareTo(Foo other){
if(number2 != // something)
return Int.compare(number, other.number);
else
return Int.compare(number2, other.number2);
}
}
は異なっています。 JavaでC++のようにすることはできますか?
いいえ、類似したコード構造を持つことを試みる以外に、あなたは本当にC++のidomsをJavaに変換することはできません。どちらの言語も異なるイデオロギーを持っています。そして、あなたは、Javaの**ジェネリック**は[別のものである]ことを知っておくべきです(http://stackoverflow.com/questions/36347/what-are-the-differences-between-generic-types-in-c-and-java) C++の**テンプレート**から。 – WhiZTiM