es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Constructor de cola de prioridad en Java con expresión lambda.

Estoy intentando crear una cola de prioridad para una clase Student con algún orden usando un comparador de expresiones lambda de Java 1.8. Pero estoy obteniendo el error Cannot infer type arguments for PriorityQueue<>.

java
class Priority
{
PriorityQueue<student> priorityQueue = null;
public Priority()
{
priorityQueue = new PriorityQueue<>(
(Student s1, Student s2) -> {
int cmp = 0;
if (s1.cgpa !=s2.cgpa)
{
return (s2.cgpa - s1.cgpa);
}
else if (s1.name.compareTo(s2.name) != 0)
{
return s1.name.compareTo(s2.name);
}
else
{
return (s1.id - s2.id);
}
});
}
}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error “Cannot infer type arguments for PriorityQueue<>” significa que el compilador no puede determinar el tipo de elementos que se almacenarán en la PriorityQueue.

    Para solucionar este error, puedes especificar el tipo de elementos que se almacenarán en la PriorityQueue. En este caso, el tipo sería Student.

    Actualiza la línea que crea la instancia de PriorityQueue a:

    priorityQueue = new PriorityQueue<student>((Student s1, Student s2) -> {...});

    Esto debería solucionar el error y crear una PriorityQueue para la clase Student con el orden especificado utilizando el comparador de expresiones lambda de Java 1.8.

Comments are closed.