Como ordenar um array de Strings???
String vetor[] = new String[100];
vetor[0] = “z”; 
vetor[1] = “a”; 
vetor[2] = “g”; 
vetor[3] = “d”;
agora preciso ordenar este vector por ordem alfabética usando o CompareTo, mas não estou conseguindo…
Alguma ajuda?
         
         
           
        
            
            
            
         
         
             
             
          
       
      
        
        
          rapid_shark,
Você não pode usar List ou ArrayList???
abs
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          não, é um trabalho para faculdade.
Preciso usar o compareTo desse array…
já vim em muitos foruns falarem em
Arrays.sort(vetor);
mais nesse não funciona…
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          String vetor[] = new String[4];
		vetor[0] = "z";
		vetor[1] = "a";
		vetor[2] = "g";
		vetor[3] = "d"; 
		
		Arrays.sort(vetor, new Comparator() {
			
			public int compare(Object o1, Object o2) {
				String a = (String) o1;
				String b = (String) o2;
				return a.compareTo(b);
			}
		});
		for(int i=0;i<vetor.length;i++){
			System.out.println(vetor[i]);
		} 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          [code]public static void main(String[] args) {
	String vetor[] = new String[100];
	vetor[0] = "z";
	vetor[1] = "a";
	vetor[2] = "g";
	vetor[3] = "d";
	
	for (int i = 0; i <vetor.length-1; i++) {
		
		for (int j = 0; j <= vetor.length-1; j++) {
		
			
			if ((vetor[j].compareTo(vetor[j + 1]) > 0)){
				  String temp = vetor[i];
				  vetor[i] = vetor[j];
				  vetor[j] = temp;
			}
		}
	}
	
	
	for (int i = 0; i < vetor.length-1; i++) {
		System.out.println(vetor[i]);
	}[/code]
 
mas agora está a dar erro de NullPointerException em
if ((vetor[j].compareTo(vetor[j + 1]) > 0)){ 
…
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          tente alterar a linha
for (int j = 0; j <= vetor.length-1; j++) {
para
for (int j = 0; j < vetor.length-1; j++) {
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          marcelux  a sua sugestão funcionou na boa, mas não vou poder aplicar pois ainda não utilizei nada disso na faculdade, mas obrigado na mesma!  
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          continua no mesmo erro… :S
a logica está a mesma que a do site: http://pt.wikipedia.org/wiki/Bubble_sort#Java 
mas um pouco modificada para Strings…
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          rapid_shark,
Será que isso lhe atende?
public class TestaVetor {
	public static void main(String[] args) {   
		String vetor[] = new String[4];   
        vetor[0] = "z";   
        vetor[1] = "a";   
        vetor[2] = "g";   
        vetor[3] = "d";
        for (int i=0; i<vetor.length-1; i++){
        	for (int t = 0; t <=vetor.length-2; t++) {   
                                            
                if ((vetor[t+1].compareTo(vetor[t]) < 0 )){   
                    String temp = vetor[t];  
                	vetor [t] = vetor[t+1];
                	vetor[t+1] = temp;
                         
                }
        	}    
        }
                              
       for (int i = 0; i < vetor.length; i++) {   
            System.out.println(vetor[i]);   
       }  
	}
} 
Abraço…
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          
 rapid_shark:
 
Arrays.sort(vetor);
 
 
Veja:
import java.util.Arrays;
public class Ordenacao {
	public static void main(String[] args) {
		String vetor[] = new String[100];
		vetor[0] = "z";
		vetor[1] = "a";
		vetor[2] = "g";
		vetor[3] = "d"; 
		
		Arrays.sort(vetor, 0, 4);
		
		for (String s : vetor)
			System.out.println(s);		
	}
} 
Você deve passar os índices que não contém valores nulos, já que eles não podem ser comparados. 
Considere também a possibilidade de usar um List no lugar de um vetor.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Outra possibilidade é fornecer um comparador que saiba lidar com nulos. Nesse caso, o comparador coloca os nulos atrás:
import java.util.Arrays;
import java.util.Comparator;
public class Ordenacao {
	public static void main(String[] args) {
		String vetor[] = new String[100];
		vetor[0] = "z";
		vetor[1] = "a";
		vetor[2] = "g";
		vetor[3] = "d";
		Arrays.sort(vetor, new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				if (o1 == null && o1 == null)
					return 0;
				if (o1 == null) 
					return 1;  //1
				if (o2 == null) 
					return -1; //2
				return o1.compareTo(o2);
			}
		});
		for (String s : vetor)
			System.out.println(s);
	}
} 
Para colocar os nulos na frente, basta trocar o -1 por 1, e vice versa, nos pontos marcados com 1 e 2.
Só não use BubbleSort. É um algoritmo infantil, serve apenas para estudo.
         
         
        
            
            
           1 curtida