Scala: ¿Hay alguna manera de usar PriorityQueue como lo haría en Java?

Tengo una clase que me gustaría utilizar en un scala.collection.mutable.PriorityQueue, pero no quiero que se ordene [A] solo para este propósito. No considero el orden que quiero usar con respecto a PriorityQueue como el orden natural de la clase.

class MyObject (sequence: Int, values: List[String]) ...

Entonces, en mi PriorityQueue, me gustaría que los valores se ordenaran por 'secuencia'. Sin embargo, el hecho de que dos objetos tengan la misma secuencia no los hace naturalmente iguales, ya que el contenido de sus "valores" puede ser diferente.

Aquí es donde, en Java, es bueno poder suministrar un objeto Comparator alternativo a PriorityQueue. Mi comparador simplemente ordenaría los objetos con respecto a su 'secuencia' e ignoraría sus 'valores'.

La clase PriorityQueue debe parametrizarse con un "A <% ordenado [A]"

class PriorityQueue[A <% Ordered[A]] extends ... 

De lo que he leído, esto significa que mi clase debe extender Ordered [A] o debo proporcionar una conversión de tipo "def implícita" a Ordered [A], que, sinceramente, se siente poco elegante.

a solución Java parece más "funcional", lo que me permite pasar un objeto similar a la función Comparator en lugar de obligarme a una jerarquía de clases o parchear mi clase.

Me doy cuenta de que hay alternativas al uso de PrioirityQueue, pero siento que puedo estar tropezando con la curva de aprendizaje de Scala aquí y no quiero rendirme sin explorar esta decisión de diseño por completo.

¿Es esta una decisión desafortunada en la biblioteca Scala o estoy malinterpretando algún tipo de convención de llamadas que hace que PriorityQueue sea más útil y 'funcional'?

Gracia

Respuestas a la pregunta(4)

Su respuesta a la pregunta