Como o titulo do assunto já diz…
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
vet[i] = vet[j];
vet[i] = Aux;
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 …