Foros del Web » Programación para mayores de 30 ;) » Java »

meter array predefinido como valor en función

Estas en el tema de meter array predefinido como valor en función en el foro de Java en Foros del Web. Hola a todos, he creado 2 tipo de array predefinidos de la siguiente forma private ArrayList <TipoX> listaOndasA = new ArrayList<TipoX>(); private ArrayList <TipoY> listaOndasB ...
  #1 (permalink)  
Antiguo 22/10/2014, 19:16
 
Fecha de Ingreso: octubre-2008
Mensajes: 184
Antigüedad: 15 años, 6 meses
Puntos: 1
meter array predefinido como valor en función

Hola a todos, he creado 2 tipo de array predefinidos de la siguiente forma

private ArrayList <TipoX> listaOndasA = new ArrayList<TipoX>();
private ArrayList <TipoY> listaOndasB = new ArrayList<TipoY>();

llevo gran parte del código trabajando con estos arrays y no hay problema, ahora bien, cuando quiero usarlos como parámetros en una función, creía recordar que sería como cualquier lenguaje, es decir si tengo una funcion Combinar que toma las dos listas, la definición de dicha función sería (o eso pensaba yo):

public Combinar(ListaOndasA, ListaOndasB)
{
lo que sea
}

pero veo que la única forma que me deja de hacerlo es la siguiente:
public Combinar(ArrayList <TipoX> listaOndasA , ArrayList <TipoY> listaOndasB)
{
lo que sea
}

pensaba que no hacía falta meter el nombre de la estructura, sino el tipo. Creo que esto no es correcto, porque de ser así, me asalta la siguiente duda. En el caso de que quiera reutilizar la misma función pero con los valores cambiados, es decir, en vez de Combinar (listaOndasA, listaOndasB) utilizar Combinar (listaOndasB, listaOndasA) al tener esa definición, ¿podría reutilizar el código o esto no sería posible por la definición?. Me gustaría confirmar que esto es correcto, y que la estructura de la llamada es la que indico para evitar futuros problemas en el código y por supuesto, para aprenderlo.

Gracias a todos!

Última edición por Olbapk; 22/10/2014 a las 19:24
  #2 (permalink)  
Antiguo 22/10/2014, 19:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 184
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: meter array predefinido como valor en función

Me respondo a mi mismo, es correcto, es el nombre de dicho elemento en la función a tomar. No se que ha pasado, imagino que que ya demasiadas horas programando .

Gracias a todos y disculpad!
  #3 (permalink)  
Antiguo 26/10/2014, 04:48
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: meter array predefinido como valor en función

cuando estás escribiendo el código no puedes meterle un objeto concreto a un método como variable. Lo que tienes que poner como argumento del método es el tipo de dato que va a recibir.

si quieres mandarle un arraylist, lo que tienes que poner como argumento es (arraylist nombre_del_arrayList)

y recuerda que este objeto que recives es un objeto distinto que se tratará como objeto local, y que almacenará todos los datos que le hayas enviado (en este caso almacenará todos los datos del arraylist que le hayas mandado... pero tienes que saber que todos los métodos almacenan sus datos encapsulados, y al terminar el método todos estos desaparecen.

Código:
public class test {
	public static void main(String[] args) {
		int num1=1;
		testIncremento test=new testIncremento(num1);
		System.out.println(test.getIncremento(num1));
	}
}
public class testIncremento {
	testIncremento(int num1){
		incrementar(num1);
	}
	int getIncremento(int num1){
		return num1;
	}
	public void incrementar (int num1){
		int num2=1;
		num1=num1+num2;//<--Este num1 es distinto al otro num1. Lo que recibe es el valor del objeto int, no el objeto.
	}
}
Este código dará como resultado en pantalla 1, y no 2... porque las variables son, en todo momento, locales y su resultado se borra al terminar la ejecución de cada método.
  #4 (permalink)  
Antiguo 26/10/2014, 12:53
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: meter array predefinido como valor en función

Cita:
Iniciado por Kritik Ver Mensaje
y recuerda que este objeto que recives es un objeto distinto que se tratará como objeto local, y que almacenará todos los datos que le hayas enviado (en este caso almacenará todos los datos del arraylist que le hayas mandado... pero tienes que saber que todos los métodos almacenan sus datos encapsulados, y al terminar el método todos estos desaparecen.

Código:
public class test {
	public static void main(String[] args) {
		int num1=1;
		testIncremento test=new testIncremento(num1);
		System.out.println(test.getIncremento(num1));
	}
}
public class testIncremento {
	testIncremento(int num1){
		incrementar(num1);
	}
	int getIncremento(int num1){
		return num1;
	}
	public void incrementar (int num1){
		int num2=1;
		num1=num1+num2;//<--Este num1 es distinto al otro num1. Lo que recibe es el valor del objeto int, no el objeto.
	}
}
Ojo que lo que estás diciendo no es correcto.

Los objetos que se pasan como parámetro SÍ son los mismos (en realidad se pasa como valor de referencia), por lo que cualquier cambio que se le haga dentro de un método se mantendrá fuera de ese método.

En el caso de las primitivas no sucede eso, los cambios dentro de un método sólo existen en el método, que es lo que muestras en tu ejemplo, pero una primitiva NO es un objeto.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 28/10/2014, 16:29
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: meter array predefinido como valor en función

gracias por la aclaración http://thumbs.dreamstime.com/x/emoti...te-9901685.jpg

Etiquetas: meter, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:26.