Boa noite colegas.
Estou tentando ordenar alunos por curso e nota recebendo um valor aleatório que está em uma lista, tenho que fazer isso por bubleSort e o método compare de Comparator sobrescrito.
Exemplo:
lista desordenada - curso = B, nota = 8; curso = B, nota = 7; curso = A, nota = 10;
resultado esperado - curso = A, nota = 10;curso = B, nota = 7; curso = B, nota = 8;
private static <T> ArrayList<T> bubleSort(ArrayList<T> list, Comparator<T> comp) {
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size() - 1 - i; j++) {
if (comp.compare(list.get(j), list.get(j + 1)) > 0) {
T aux = list.get(j);
list.set(j, list.get(j + 1));
list.set(j + 1, aux);
}
}
}
return list;
}
import java.util.Comparator;
public class CursoNotaComparetor implements Comparator<Aluno> {
@Override
public int compare(Aluno a1, Aluno a2) {
if (a1.getCurso().equalsIgnoreCase(a2.getCurso())) {
return (int) (a1.getNota() - a2.getNota());
}
return 0;
}
}
import java.util.Comparator;
public class CursoNotaComparetor implements Comparator<Aluno> {
@Override
public int compare(Aluno a1, Aluno a2) {
if (a1.getCurso().compareToIgnoreCase(a2.getCurso()) > 0) {
return (int) (a1.getNota() - a2.getNota());
}
return 0;
}
}