Como passar um vetor como parametro para um metodo?

Como o titulo do assunto já diz…

como passar um vetor como parametro para um metodo?

assim ó

public void metodo(String[] array){}

String[]
int[]
double[]

sao declarações de vetores(arrays)

E no caso de eu querer passar um vetor de 3 posição para um método de ordenação
vet[0]=3
vet[1]=1
vet[2]=2

para ordenar em ordem decrescente…

public void setMetodoOrdenaVet(int[] vt){
codigo de ordenação…
}

Ficarai assim como fiz??? :razz: [/code]

na verdade imagino que queira devolver o array ordenado depois né?
nesse caso deveria ser assim…

public int[] setMetodoOrdenaVet(int[] vt){
codigo de ordenação...
} 

ao invés de retornar um void, ou seja, nada, você retorna seu array…

só falta o código de ordenar! auehuahe

abraço!

É isso ai entendi o que não sei como fazer é fazer a passagem tipo assim [code]

class teste{
public int vet[] = new int[2];
public void setOrdena(int[] vt){
int Aux=0, j=0;
for(int i=0;i<=2;i++){
Aux = vet[i];
vet[i] = vet[j];
vet[j] = Aux;
}
}
public static void main(String args[]){
teste t = new teste();
int vet[] = new int[2];
t.setOrdena(“é aqui que não sei como passar o parametro”);
}

}[/code]

Então não sei como passar no o paremetro momento que chama o metodo…

t.setOrdena(parametro); não sei como??

nesse método você esta iniciando uma variavel local vt que nao esta sendo usada pois você esta usando a variavel global vet.

para passar como parâmetro seria


int[] vet = new int[2];
vet[0] = 1;
vet[1] = 2;

setOrdena( vet );

Estou usando esse codigo e não esta dando certo[code]
class teste{
public int vet[] = new int[3];
public teste(){
vet[0]=3;
vet[1]=2;
vet[2]=1;
}
public void setCal(){
setOrdena(vet);
for(int i=0;i<=2;i++){
System.out.println("="+vet[i]);
}
}

public void setOrdena(int[] vt){
int Aux=0, i=0,j=i+1;
for(i=0;i<2;i++){
if(vet[i]>vet[j]){
Aux = vet[i];
vet[i] = vet[j];
vet[i] = Aux;
}
}
}
public static void main(String args[]){
teste t = new teste();
t.setCal();
}
}
[/code]

Soh alguns comentarios

  1. Se vc vai ordenar vet (atributo da classe), para que passar por parametro para o método da classe?
  2. afinal, quanto tu quer que vet[i] vale? hehe
vet[i] = vet[j];
vet[i] = Aux; 
  1. Esse seu método de ordenação não tem lógica nenhuma heheh aconselho dar uma estudada em algum, afinal, j vai sempre ser 1? não teria que incrementa-lo, e sobre a posicao 0 do seu vetor, vc só vai comprar com a posicao 1, e se tiver certo vai presumir que esteja correto ja para sempre? Se é trabalho de escola para ordenação, então melhor dar uma olhada antes no método, fazer uns testes de mesa e tal, senão, porque você não usa direto “Arrays.sort(vet);”?

ah, não é a melhor forma de se ordenar, mas, a principio funciona… substitui no seu setOrdena e depois olha as diferenças e tenta entender os seus erros (porque não ordenava), não simplesmente copia o código.

      int Aux;
      for (int i = 0; i < vet.length; i++)
      {
         for (int j = i + 1; j < vet.length; j++)
         {
            if (vet[i] > vet[j])
            {
               Aux = vet[i];
               vet[i] = vet[j];
               vet[j] = Aux;
            }
         }
      }

Bom …
É o seguinte …quero saber como faço para passar o parametro em forma de vetor na chamada do método …
Fiz o codigo na mesma classe para ficar mais facil o que quero aprender …

E ainda estou com a duvida …
Quero aprender a passar o parametro no chamado do método…

???

Sfing,

Blz cara, seguinte,

implementei aqui e funcionou, acho que a solução para sua dúvida está no código, da uma examinada. No caso eu implementei um método de ordenação que achei na internet, mas você usa o seu aí !!
da uma atenção no método main da classe, tem duas passagens de vetores.


public class Principal {

	public static void main(String[] args){
	
		int[] v1 = {4, 3, 2, 1};			
		int[] v2 = {2, 1};
		
		setOrdena(v1);		
		printVetor(v1);
			
		setOrdena(v2);		
		printVetor(v2);		
		
	}
	
	private static void printVetor(int[] v){
		
		StringBuffer sb = new StringBuffer();
		
		for(int i = 0; i < v.length; ++i)
			sb.append(v[i]);
		
		System.out.println();
		System.out.println("vetor de tamanho: " + v.length
			+ "\nordenado: " + sb.toString());
			
	}
	
	private static void setOrdena(int[] ordena){
		
		int x, i;
		
		for(int j = 1; j < ordena.length; ++j){
		
			x = ordena[j];
			
			for(i = j - 1; i >= 0 && ordena[i] > x; --i)
				ordena[i + 1] = ordena[i];
			
			ordena[i + 1] = x;
		
		}			
	}	
}

abs,

[quote=“sfing”]Bom …
É o seguinte …quero saber como faço para passar o parametro em forma de vetor na chamada do método …
Fiz o codigo na mesma classe para ficar mais facil o que quero aprender …

E ainda estou com a duvida …
Quero aprender a passar o parametro no chamado do método…

???[/quote]

meu deus… cara, deu erro de compilação no que você tinha feito? colocando o vet ali deu erro de compilação? não deu certo? então é porque você pode fazer isso, tava certo como vc passava o parâmetro… agora o motivo de não estar odenando o vetor, era por outra coisa, nada a ver com o parâmetro, e você chegou aqui falando que não funcionou e que ainda não estava ordenando. Se você entendeu o que eu falei no item 1 ia ver, eu disse que o vetor que vc passou por parametro não era usado no seu método, então não fazia sentido passa-lo… mas se quizer usar, é só trocar o vet pelo vt dentro do método, pronto…

Se sua duvida é passar array por parametro faz isso:

class Teste
{
   public static void main(String[] args)
   {
      Teste t = new Teste();
      int[] v = new int[3];
      v[0] = 1;
      v[1] = 2;
      v[2] = 3;
      t.listaVetor(v);
   }

   public void listaVetor(int[] vet)
   {
      for (int i = 0; i < vet.length; i++)
      {
         System.out.println(vet[i]);
      }
   }
}

Exemplo mais basico para passar vetor como parametro impossivel… Agora você tem que endender.

Ai galera … valeu por me ajudar …
Entendi tudo …