Foro de elhacker.net

Programación => Java => Mensaje iniciado por: utz en 9 Octubre 2012, 09:23 am



Título: Pasar una columna como parametro (editado, ahora esta mas bonito :D)
Publicado por: utz en 9 Octubre 2012, 09:23 am
Hola a todos, generalmente programo e C/C++ pero ahora me ha tocado aprender JAVA, estoy en la parte de hilos (hebras, threads...) y me he topado con un detalle del cual no puedo encontrar info en google xDDDD

y es que quiero pasar una columna de una matriz a una funcion en otra clase...

algo asi como

respuesta = funcion(matriz[fila], matriz[columna]);

en C lo hacia con el punto

respuesta = funcion(matriz[fila], matriz.[columna]);

pero en JAVA no me esta funcionando :S

espero me puedan dar una ayuda, desde ya muchas gracias.


PD: las matrices son algo grandes como para estarlas rotando... tomaria mucho tiempo hacer que el pc haga esos cambios, por eso busco algo mas directo.

edit:
este es el codigo que trabajara con los vectores:

Código:
public class Multiplica extends Thread{
    int resultado,x[],y[],n;
    //contructor
    public Multiplica(int x[], int y[],int n){
        super("multiplica");
        this.x=x;
        this.y=y;
        this.n=n;
    }
    //realiza la operacion multiplicacion
    public void  run(){
        for(int i=0;i<n;i++){
            resultado+= x[i]*y[i];
        }
    }
    //retorna el resultado
    public int retorno(){
        return resultado;
    }
}

y este es el codigo que pasa los vectores:

Código:
for(int i=0;i<n;i++){
                        for(int j=0;j<n;j++){
                            Multiplica multiplica = new Multiplica(matriz1[i],matriz2rot[j],n);
                            multiplica.run();
                            multiplicada[i][j]=multiplica.retorno();

                            /*mas operaciones con otros hilos*/

                        }
                    }

la idea es no tener que rotar la matriz2 y pasar la columna directamente, para ahorrar un poco de menoria :D


saludos!!

EDIT: Fui a preguntarle a mis profesores y al parecer no se puede hacer lo que estoy buscando de esa forma tan directa :(