Situação: Criar uma classe de alunos com atributos nome e nota. Criar uma classe Disciplina que tenha um ArrayList de alunos.
Criar uma classe OrdenaAlunoPorNota implementando a interface Comparator<> de Aluno, e nela fazer a comparação de suas notas, considerando que um aluno está na frente do outro se sua nota for maior. Criar um classe main, de modo que adicione os alunos no ArrayList e mostre de forma ordenada as notas dos alunos.
public class Aluno {
String nome;
String nota;
public Aluno(String nome, String nota) {
this.nome = nome;
this.nota = nota;
}
public String getNome() {
return nome;
}
public String setNome(String nome) {
return this.nome = nome;
}
public String getNota() {
return nota;
}
public String setNota(String nota) {
return this.nota = nota;
}
}
// Classe Disciplina e MAIN
import java.util.*;
public class Disciplina {
public static void main(String[] args) {
ArrayList<Aluno> listAlunos = new ArrayList<Aluno>();
Aluno a1 = new Aluno("Jonnie", "10");
Aluno a2 = new Aluno("Zezinho", "8.5");
Aluno a3 = new Aluno("Bianca", "6");
listAlunos.add(1, a1); //add elementos no arrayList no indice 1
listAlunos.add(2, a2); //add elementos no arrayList no indice 2
listAlunos.add(0, a3); //add elementos no arrayList no indice 0
Collections.sort(listAlunos, new OrdenaAlunoPorNota()); //ordenação dos elementos
Iterator it = listAlunos.iterator();
while (it.hasNext()) { //Enquanto tiver elementos
String aluno = (String) it.next(); //Obter prox elemento
if (listAlunos.equals("Jonnie")) { //Comparação com o elemento a ser excluido
it.remove(); // remoção do elemento
}
}
}
}
// Classe OrdenaAlunoPorNota
import java.util.Comparator;
public class OrdenaAlunoPorNota implements Comparator<Aluno> {
public int compare(Aluno a1, Aluno a2) {
return a1.nota.compareTo(a2.nota);
}
}
Creio que o código esteja todo correto, porém, na hora de rodar, ele exibe o seguinte erro:
[color=red]Exception in thread “main”[color=blue] java.lang.IndexOutOfBoundsException[/color]: Index: 1, Size: 0
at java.util.ArrayList.rangeCheckForAdd(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at Main.main(Main.java:15)[/color]
Se pudessem me ajudar, ficarei grato.
Até mais!