Я понятия не имею, как использовать приоритетную очередь в java, как в C++. В C++ мы можем сделать это следующим образом:Сравнение очередей приоритетов - java vs C++
priority_queue<object*, vector<object*>, compareClass>
Так что, когда у нас есть класс, как это:
class Foo{
public:
int number1;
int number2
Foo(){};
};
Мы можем использовать две разные очереди, чтобы сравнить в них 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);
}
}
В этом случае соучастии программы отличается. Могу ли я сделать что-то вроде C++ в Java?
Нет, кроме попыток иметь аналогичную структуру кода. вы действительно не можете перевести иконы C++ на Java. Оба языка имеют разные идеологии. И вы должны знать, что Java ** generics ** [отличается] (http://stackoverflow.com/questions/36347/what-are-the-differences-between-generic-types-in-c-and-java) из шаблонов ** C++ **. – WhiZTiM