Scala: Existe uma maneira de usar PriorityQueue como eu faria em Jav

Tenho uma classe que gostaria de usar em um scala.collection.mutable.PriorityQueue, mas não quero torná-la Ordenada [A] apenas para esse propósito. Não considero a ordem que desejo usar em relação ao PriorityQueue como a ordem natural da classe.

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

Então, no meu PriorityQueue, gostaria que os valores fossem ordenados por 'sequência'. No entanto, o fato de dois objetos terem a mesma sequência não os torna naturalmente iguais, pois o conteúdo de seus 'valores' pode ser diferente.

É aqui que, em Java, é bom poder fornecer um objeto Comparator alternativo ao PriorityQueue. Meu comparador simplesmente ordenava os objetos em relação à sua 'sequência' e ignora seus 'valores'.

A classe PriorityQueue deve ser parametrizada com um "A <% Ordered [A]"

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

Pelo que li, isso significa que minha classe deve estender o Ordered [A] ou devo fornecer uma conversão de tipo de "definição implícita" para o Ordered [A], o que, honestamente, parece deselegant

A solução Java parece mais "funcional", permitindo que eu passe um objeto parecido com uma função Comparator em vez de me forçar a uma hierarquia de classes ou monomarcar minha class

Eu percebo que existem alternativas para usar o PrioirityQueue, mas sinto que posso me deparar com a curva de aprendizado do Scala aqui e não quero desistir sem explorar completamente essa decisão de desig

Essa é apenas uma decisão infeliz na biblioteca Scala ou estou entendendo mal algum tipo de convenção de chamada que torna o PriorityQueue mais utilizável e 'funcional'?

Obrigad

questionAnswers(4)

yourAnswerToTheQuestion