[RESOLVIDO]Passar array por parametro

5 respostas
haveno

Olá galera, estou tentando passar uma array por parâmetro mas não estou fazendo certo segue o código:

public class Ordena {
    
    public static void ordint(int[] vetor) {
        
        
        Arrays.sort(vetor);
        int vtamanho = vetor.length;
        
        for (int i = 0; i < vtamanho; i++) {
            
            System.out.println(vetor[i]);
            
        }
        
    }
    
}
public class Ordem {
    
    public static void main(String[] args) {
    
        Ordena ord = new Ordena();
        
        ord.ordint(3,4,1,2,6);
    
    }
       
}

Sou novo no java se alguem puder me ajudar desde já agradeço.

5 Respostas

thiago.correa

Só para constar, do modo como você está usando, é como se o método aceitasse 5 inteiros.
Bom, vamos a dúvida

int[] i = new int[]{3,4,1,2,6};

ord.ordint(i);
P.S.: A partir do java 5, você pode chamar métodos que aceitam varargs da seguinte maneira, basta que á assinatura do método aceite varargs:
public class Ordena {   
       
    public void ordint(int...vetor) {   
           
           
        Arrays.sort(vetor);   
        int vtamanho = vetor.length;   
           
        for (int i = 0; i < vtamanho; i++) {   
               
            System.out.println(vetor[i]);   
               
        }   
           
    }   
       
}

Outra coisa, se o seu método ordint é estático, não é necessário criar um objeto para chamá-lo, basta fazer o seguinte

public class Ordem {   
       
    public static void main(String[] args) {   
       int[] i = new int[]{3,4,1,2,6};

  
        Ordena.ordint(i);   
       
    }   
         
}
haveno

Certo, e se eu quiser passar os parametros,

ord.ordint(Aqui dentro, como faria);

thiago.correa

Mas você já está passando dentro! ahahahahaha

Nada muito complicado, na verdade você só vai pegar a parte que está a direita do sinal de igual na criação do vetor de inteiros. :wink:

ord.ordint(new int[]{3,4,1,2,6});

mas, não aconselho e nem gosto de fazer dessa maneira, somente por legibilidade do código, mas a linguagem aceita.

G

Seu método ordint() recebe um array de inteiros e não números inteiro

public static void main(String[] args) {  
	      
	        Ordena ord = new Ordena();  
	          
	        ord.ordint(3,4,1,2,6);  // passando números inteiro e não um array
	      
	    }

[color=red]Correto[/color]

public static void main(String[] args) {  
	      
	        Ordena ord = new Ordena();  
	          
	        int[] vetor  = new int[]{3,4,1,2,6};
	        ord.ordint(vetor);  
	      
	    }
haveno

Entendi, muito obrigado pessoal, ajudaram mesmo! =)

Criado 16 de novembro de 2012
Ultima resposta 16 de nov. de 2012
Respostas 5
Participantes 3