Dúvida com relação a passagem de array por parametro

6 respostas
B

estou fazendo um trabalho de faculdade e uso o infeliz do Dr. Java ¬¬.
tenho que executar o código pelo interpretador e nao tem interface porque são critérios da professora também.

Nesse trabalho criei um método que carrega um vetor, isto é, passa valores pra cada uma das posições do vetor. Os valores e o tamanho do vetor estao num arquivo que eu usei a classe Scanner pra obter, até ai tudo bem.

Só que preciso fazer outro método que receba esse vetor que eu fiz, e nao sei como fazer isso. E como vou colocar isso no interpretador?

Grato desde já!

6 Respostas

luciano.eti

acho que não entendi muito bem oque queria, mas

// Passando array inteira, passando cópia da referência.
meuMetodo( minhaArray );
// Passando um item do array, passando cópia do valor do item.
meuMetodo( meuItemDoArray );
.
.
.
// Método que recebera a cópia da referência da array inteira.
void recebeMinhaArray( tipo minhaArray[]){}
// Método que receberá uma cópia do valor de um item de minha array.
void recebeUmItemDaMinhaArray( tipo item ){}

espero que ajude…

[]'s

Luciano

B

entao cara isso eu sei só que tipo eu nao sei como passar o vetor quando eu estiver executando entende?
tipo

class Imagem{
void void carregaVetor(){
    
    try{
      Scanner sc = new Scanner( new File("consultaDePlacas.v3.txt") );
      sc.nextLine();
      _nLinhas1 = sc.nextInt();
      _nColunas1 =sc.nextInt();
      
      vetor1 = new int[_nLinhas1*_nColunas1];
      
      for(int i=0;i<vetor1.length;i++){
        vetor1[i] = sc.nextInt();
      }
}}

tem esse método tb
void converteVetorMatriz(int[] vetorImg, int nLinhas, int nColunas){}

esse método coloca os valores no vetores correspondenter e tals e o outro recebe o vetor.
mas como vou fazer isso no interpretador?
seria…

Imagem im = new Imagem() im.carregaVetor() int[] vetor void converteVetorMatriz(vetor,nLinhas,nColunas){

assim?

obrigado

danielJaponeis

Axo q to enganado, mas vc só qr um vetor que receba esse vetor que vc carregou?
como se fosse uma copia?

se for isso da pra fazer assim:

public class Vetor {

	int[] vet = new int[5];
	public int[] carregaVetor() {
		for(int x=0; x<vet.length; x++){
			vet[x]=x;
		}
		return vet;
	}
	
	public int[] pegaVetor(int[] vetor){
		int[] vetorAuxiliar = vet;
		return vetorAuxiliar;
	}
	
	public static void main(String[] args) {
		
		Vetor v = new Vetor();
		int[] vetorQueRecebeOutroVetor = v.pegaVetor(v.carregaVetor());
		
		for(int x : vetorQueRecebeOutroVetor){
			System.out.println(x);
		}
		
	}
}

senão eu num entendi o q vc qr fazer naum ¬¬

B

entao cara acho que é isso mesmo!
mas tenho outro problema!

tipo esse vetor é a base pra eu fazer uma matriz que será uma imagem. E eu tenho que formar 4 imagens que serao de uma placa entao terei que fazer esse código 4 vezes?
void carregaVetor(){
    
    try{
      Scanner sc = new Scanner( new File("consultaDePlacas.v3.txt") );
      sc.nextLine();
      _nLinhas = sc.nextInt();
      _nColunas =sc.nextInt();
      vetor = new int[_nLinhas*_nColunas];
      
      for(int i=0;i<vetor.length;i++){
        vetor[i] = sc.nextInt();
      }

Obrigadao!

M

Aos senhores que estão trabalhando com cópia de arrays (me desculpe, mas não consigo chama-los de vetores sem pensar em java.util.Vector), vejam o método System.arraycopy. Este método é essencial ao Java, usado, por exemplo, em grande parte das operações com Strings.

Se algum dia você estiver manipulando Strings e se deparar com um ArrayIndexOutOfBoundsException, este conhecimento irá lhe poupar várias horas de dor de cabeça.

[]s
–mcbrain

B

entao cara eu nem procurei outro tipo de método porque a minha professora estabeleceu o uso do conhecimento adquirido até o presente momento, ou seja, tem que fazer sem usar API’s e métodos pouco usuais ¬¬

Criado 30 de maio de 2009
Ultima resposta 2 de jun. de 2009
Respostas 6
Participantes 4