SoloCodigo

Programación General => Java => Mensaje iniciado por: Hispasat88 en Miércoles 7 de Enero de 2009, 11:36

Título: Introducir un registro nuevo en un vector de registros
Publicado por: Hispasat88 en Miércoles 7 de Enero de 2009, 11:36
Hola a todos,

En un ejercicio me piden que creado un registro, lo introduzca en un vector de registros, y si la posicion del vector esta ocupada, busque una posicion que no lo este. Seria como para crear un agenda para el movil y despues buscar segun algunos criterios dentro del registro. Ya he implementado el registro y el vector de registros de la siguiente manera:

registroContacto[] vectorAgenda;//Creo el vector agenda donde iran los contactos
      vectorAgenda=new registroContacto[50];//Creo el vector de registros
      for(i=0;i<vectorAgenda.length;i++){
         vectorAgenda=new registroContacto();//Inicializo cada registro

Solo me falta el metodo para una vez relleno el registro con los datos, meterlo dentro del vector.

Gracias de antemano.
Título: Re: Introducir un registro nuevo en un vector de registros
Publicado por: m0skit0 en Miércoles 7 de Enero de 2009, 12:07
Cita de: "Hispasat88"
vectorAgenda=new registroContacto();
Aquí ya creas un registro dentro del vectorAgenda, sólo tienes que rellenarlo con vectorAgenda.*, es decir, por ejemplo:

Código: Java
  1.  
  2. vectorAgenda[i].insertar_nombre("Alberto");
  3. vectorAgenda[i].insertar_telefono("600000000");
  4.  
  5.  

Salud
Título: Re: Introducir un registro nuevo en un vector de registros
Publicado por: Hispasat88 en Jueves 8 de Enero de 2009, 13:10
El problema viene dado porque el ejercicio es de una agenda para un movil, y es muy basico, es decir no puedo utilizar clases util, etc, entonces yo creo un registro con los datos del nuevo contacto fuera del vector, y luego quiero que, recorra todo el vector y cuando vea un hueco libro asigne ese registro, de tal manera que vaya ocupando espacios.

Gracias por todo,
Un saludo
Título: Re: Introducir un registro nuevo en un vector de registros
Publicado por: m0skit0 en Jueves 8 de Enero de 2009, 13:15
Cita de: "Hispasat88"
y luego quiero que, recorra todo el vector y cuando vea un hueco libro asigne ese registro
Entonces no debes inicializar el vector con objetos, sino con un valor de vacío, o bien añadirle un valor que indique si esa posición está libre o no (lo puedes hacer con otro vector de booleanos, por ejemplo).

Salud
Título: Re: Introducir un registro nuevo en un vector de registros
Publicado por: Hispasat88 en Viernes 9 de Enero de 2009, 13:45
He creado este bucle, para que cuando encuentre un registro vacio en el vector sea asignado al registro creado. Decir que tienen como tu decias todos los registros inicializados. Aqui dejo el bucle por si le hace falta a alguien:
Código: Text
  1.  
  2.  
  3. for(n=0;n<=49;n++){
  4.      if(vectorAgenda[n].movil==0){
  5.             vectorAgenda[n]=R;
  6.         break;//Sale del for al haber encontrado un hueco libre y haber asignado ya el registro creado.
  7.      }
  8. }
  9.  
  10.  
  11.  
Título: Re: Introducir un registro nuevo en un vector de registros
Publicado por: m0skit0 en Viernes 9 de Enero de 2009, 15:47
Código: Text
  1. vectorAgenda[n].movil==0
  2.  
Vale, has usado el miembro movil para controlar si está ocupado o no. Me parece bien. Un consejo: intenta encapsular los miembros de una clase usando métodos que comprueban la validez de los datos a insertar. Es decir, haz los miembros privados (movil por ejemplo) sólo accesibles por métodos públicos que tú defines.

Cita de: "Hispasat88"
Decir que tienen como tu decias todos los registros inicializados.
No deberías hacerlo así, es un gasto de memoria inútil. Inicialízalos cuando vayas a rellenarlos.