Strings em ordem alfabética

Bota o Collections.sort(Alunos); fora do for…

Na hora de imprimir tenta assim:

[code]StringBuffer sb = new StringBuffer();

for (int i = 0; i<= Alunos.size(); i++){
sc.append("Aluno " + Alunos.get(ii) + " tem a nota " + Nota1.get(ii) + “\n”);
}

String s = sc.toString();
JOptionPane.showMessageDialog(null, s);
[/code]

Vê se funciona…
Abraços,

Bom, acho que pra evitar problemas o mais certo nesse caso era criar uma classe Aluno que tem Nome e Nota como atributos. Então implementar a interface comparable, assim poderia usar normalmente o método sort()…

[quote=pimenta]Bota o Collections.sort(Alunos); fora do for…

Na hora de imprimir tenta assim:

[code]StringBuffer sb = new StringBuffer();

for (int i = 0; i<= Alunos.size(); i++){
sc.append("Aluno " + Alunos.get(ii) + " tem a nota " + Nota1.get(ii) + “\n”);
}

String s = sc.toString();
JOptionPane.showMessageDialog(null, s);
[/code]

Vê se funciona…
Abraços,
[/quote]

Fiz as alterações e o problema continua.

Qual é o problema exatamente, cara?
Qual erro, exatamente, que está dando?
Coloca o código completo aí…

O erro é que após pedir a segunda nota, o programa é encerrado, não acontece mais nada, não aparece nenhuma mensagem de erro, apenas é fechado, o código é aquele que eu postei no outro post, vou colocar aqui novamente:


import java.util.*;
import javax.swing.*;
public class Alunos {
	public static void main (String[] args) {

		ArrayList Alunos = new ArrayList();
		ArrayList Nota1 = new ArrayList();
		ArrayList Nota2 = new ArrayList();
		ArrayList Media = new ArrayList();
		
		String nome;
		double nota1, nota2;
		
		
		 for( ; ; ) {

		   nome = JOptionPane.showInputDialog(null, "Informe o nome do aluno ou aperte <Enter> com o campo em branco para encerrar o programa: ");
		   if(nome.equals("")){ 
		     break; 
		   }
		   Alunos.add(nome);
		   
		 }
		 Collections.sort(Alunos); 
		 
		 
		 for(int i = 0; i<= Alunos.size(); i++){
		   nota1 = Double.parseDouble(JOptionPane.showInputDialog(null, "Informe a nota do aluno " + Alunos.get(i)));
		   Nota1.add(nota1);
		   		   
		 }
		 
		 
		 for(int i = 0; i<= Alunos.size(); i++){
		   nota2 = Double.parseDouble(JOptionPane.showInputDialog(null, "Informe a segunda nota do aluno " + Alunos.get(i)));
		   Nota2.add(nota2);
		 }
		 
		 
		 for(int i = 0; i<= Alunos.size(); i++){
	       JOptionPane.showMessageDialog(null, "Aluno " + Alunos.get(i) + " Primeira nota:  " + Nota1.get(i)+ "  Segunda nota: "+Nota2.get(i));	
		 }
	
  }
}

Obrigado pela atenção, abraços.

Complementando, aparece a seguinte mensagem no console:

Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Alunos.main(Alunos.java:28)

A solução foi trocar o <= do for por apenas <

Não é bem um problema, mas um incômodo, que gostaria de saber se tem como resolver:
Ao apresentar o nome e nota dos alunos, o programa mostra um de cada vez, não teria como mostrar na mesma janela todos os nomes e notas ?
É um pouco estranho ter que ficar clicando em OK para ter que ver a nota do próximo aluno.

Muito obrigado pela ajuda de quem postou, me ajudou bastante. abraços!