Java - Cómo puedo introducir varios objetos en un array??????

   
Vista:

Cómo puedo introducir varios objetos en un array??????

Publicado por Esteban (5 intervenciones) el 20/12/2017 12:04:23
Hola a tod@s !!!
Mi problema es el siguiente...
Quiero mostrar por pantalla cualquiera de los objetos de la clase Persona a través de su dni,pero solo
logro hacerlo con uno de ellos,el resto no lo reconoce. Sé que debe ser porque en el array hay solo un objeto y por lo tanto,no el bucle for no tiene nada que recorrer.

He probado de varias formas,pero todas saltan errores.

Os dejo el código.

Saludos y gracias!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Scanner t = new Scanner(System.in);
 
Persona p [ ]=new Persona[4];
int total = 0;
 
 
Persona p1 = new Persona("Juan","Calle 1","12345"); //nombre,direccion,dni
Persona p2 = new Persona("Vera","calle 2","abcde");
Persona p3 = new Persona("Nicolás","calle 3","ABCDE");
Persona p [ ] =  {p1,p2,p3};
 
p [total] = p1;
p [total] = p2;
p [total] = p3;
total ++;
 
System.out.print("Introduce el DNI del cliente que quieres ver: ");
String dni = t.next();
 
Persona buscado = null;
for(int i = 0; i < total && buscado == null; i++){
	if(p[i].getDni().equals(dni)){
		buscado = p[i];
	}
}
 
if(buscado != null){
	System.out.println("\nCliente encontrado\n");
	System.out.println(buscado);
}else{
	System.out.println("No se ha encontrado el cliente indicado");
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cómo puedo introducir varios objetos en un array??????

Publicado por Nicolas (119 intervenciones) el 20/12/2017 12:08:32
Hola Esteban.
Prueba en tu codigo modificar el for si es ese el problema:

1
2
3
4
5
6
7
Persona buscado = null;
for(int i = 0; i < 3; i++){ //Explicar
if(p[i].getDni().equals(dni)){
buscado = p[i];
break;
}
}

Espero te ayude.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cómo puedo introducir varios objetos en un array??????

Publicado por Esteban (5 intervenciones) el 20/12/2017 12:36:42
Hola Nicolas!
Muchas gracias!
Te comento,funciona solo con los objetos p2 y p3.Al intorducir el dni de p1 (12345) me dice que no se ha encontrado el objeto.

Saludos y gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cómo puedo introducir varios objetos en un array??????

Publicado por Nicolas (119 intervenciones) el 20/12/2017 13:02:46
Esteban te paso un ejemplo que hice recién y me funciona.

El Objeto Persona:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/**
 *
 * @author nicolas
 */
public class Persona {
    private String dni, nombre, apellido;
 
    public String getDni() {
        return dni;
    }
 
    public void setDni(String dni) {
        this.dni = dni;
    }
 
    public String getNombre() {
        return nombre;
    }
 
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
 
    public String getApellido() {
        return apellido;
    }
 
    public void setApellido(String apellido) {
        this.apellido = apellido;
    }
 
    public Persona(String dni, String nombre, String apellido) {
        this.dni = dni;
        this.nombre = nombre;
        this.apellido = apellido;
    }
 
    @Override
    public String toString() {
        return "Persona{" + "dni=" + dni + ", nombre=" + nombre + ", apellido=" + apellido + '}';
    }
}



La Clase Principal:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.util.Scanner;
 
/**
 *
 * @author nicolas
 */
public class PruebaArray {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
 
        Scanner entrada = new Scanner(System.in);
        Persona p[] = new Persona[3];
 
        Persona p1 = new Persona("12345", "Juan", "Perez"); //nombre,direccion,dni
        Persona p2 = new Persona("abcde", "Alex", "Vera");
        Persona p3 = new Persona("ABCDE", "Nicolás", "Artus");
        p[0] = p1;
        p[1] = p2;
        p[2] = p3;
 
        Persona tmp=null;
        System.out.println("Ingrese DNI a buscar:");
        String dni= entrada.next();
        for (int i = 0; i < 3; i++) {
            tmp=p[i];
            if(tmp.getDni().equals(dni)){
                System.out.println(tmp);
                break;
            }
        }
    }
 
}


Espero te sirva de ayuda. Abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cómo puedo introducir varios objetos en un array??????

Publicado por Esteban (5 intervenciones) el 20/12/2017 13:31:28
Funciona a la perfección .genial,muchas gracias..:)

Lo que has hecho es en lugar de meter todos los objetos en la variable total,los has tratado individualmente asignándole la posición dentro del array no??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cómo puedo introducir varios objetos en un array??????

Publicado por Nicolas (119 intervenciones) el 20/12/2017 13:45:47
Claro. Puedes agregar los objetos al array de las 2 formas.
Yo por lo general lo hago así cuando tienes que ir agregando de a uno pidiendo datos al usuario. Te pasé ese ejemplo para que te ayude en tu trabajo.
Cualquier cosa puedes consultar. Abrazo desde Uruguay.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Cómo puedo introducir varios objetos en un array??????

Publicado por Esteban (5 intervenciones) el 20/12/2017 13:51:49
Pues me has ayudado mucho!!
Gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad