Java - busqueda en un arreglo de objetos

 
Vista:
sin imagen de perfil

busqueda en un arreglo de objetos

Publicado por daniel (12 intervenciones) el 01/10/2016 00:16:15
Que tal compañeros haber si me podrian ayudar con el codigo para la busqueda en un arreglo de objetos anexo el codigo
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
ublic class datos {
 
	public void datos()
	{
		 Scanner scan= new Scanner(System.in);
			producto p[]= new producto [50];
 
		int op;
			int i,lim;
			int codigo;
			String descripcion;
			double precio;
 
 
 
			System.out.println("Ingresa el numero de productos: ");
			 lim=scan.nextInt();
 
 
	for( i=0;i<lim;i++)
	{
		p[i]=new producto();
		System.out.println("Producto numero "+ (i+1)+"= ");
		System.out.println("Ingresa el  codigo: ");
		codigo=scan.nextInt();
		System.out.println("Ingresa la descripcion : ");
		descripcion=scan.next();
		System.out.println("Ingresa el precio: ");
		precio=scan.nextInt();
		p[i].setCodigo(codigo);
		p[i].setDescripcion(descripcion);
	p[i].setPrecio(precio);
	}
	System.out.println("Elige tu opcion");
	System.out.println("1.Ver reporte");
	System.out.println("2.Precio menor");
	System.out.println("3.Precio Mayor");
	op=scan.nextInt();
	switch (op){
 
	case 1:
 
	for (i=0;i<lim;i++)
	{
		System.out.println("Este es tu reporte\nCodigo: "+p[i].getCodigo()+"\nEsta es la descripcion: "+p[i].getDescripcion()+"\nEste es el precio: "+p[i].getPrecio());
	}
break;
 
 
 
	case 2:
 
	 String preciomasbajo;
	 double min;
	 	 {
	 preciomasbajo= p[0].getDescripcion();
	 min=p[0].getPrecio();
	 for ( i=1; i<p.length; i++)
	 {
	 precio=p[i].getPrecio();
	 if (precio<min)
	 {
	 min=precio;
	 preciomasbajo= p[i].getDescripcion();
 
	System.out.println("Descripcion de los productos\n2con menor precio: "+p[i].getDescripcion()+"\nPrecio: "+p[i].getPrecio());
 
	System.out.println("");
	System.out.println("Regresar al menu");
	System.out.println("Pulsa 1 si deseas regresar al menu");
	System.out.println("Pulsa 2 si quieres salir");
	op=scan.nextInt();
 
	if (op==1)
	{
		mostrador m= new mostrador();
		m.main(null);
	}
	 }
	 break;
	 }
	 	 }
 
	 case 3:
		 double preciomasalto;
		 double max;
		 	 {
		 preciomasalto= p[0].getPrecio();
		 max=p[0].getPrecio();
		 for ( i=1; i<p.length; i++)
		 {
		 precio=p[i].getPrecio();
		 if (precio>max)
		 {
		 max=precio;
		 preciomasalto= p[i].getPrecio();
 
		 System.out.println("Descripcion de los productos\ncon mayor precio: "+p[i].getDescripcion()+"\nPrecio: "+p[i].getPrecio());
		System.out.println("");
		System.out.println("Regresar al menu");
    	System.out.println("Pulsa 1 si deseas regresar al menu");
    	System.out.println("Pulsa 2 si quieres salir");
    	op=scan.nextInt();
 
    	if (op==1)
    	{
    		mostrador m= new mostrador();
    		m.main(null);
    	}
		 }
 
	 }
	}}
	}
}
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
Imágen de perfil de Óscar

busqueda en un arreglo de objetos

Publicado por Óscar (14 intervenciones) el 01/10/2016 17:22:12
Hola Daniel.
Exactamente qué es lo que quieres hacer?
Para buscar objetos, por qué no utilizas un clase que implemente la interfaz List?
A no ser que necesites emplear arreglos tradicionales por motivos didácticos, optimizarías el código orientándolo a objetos. Si es este último caso coméntalo y buscamos una solución con arreglos
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
sin imagen de perfil

busqueda en un arreglo de objetos

Publicado por daniel (12 intervenciones) el 01/10/2016 17:30:36
Hola que tal oscar, lo que requiero es buscar un producto ingresando por medio del codigo que previamente yo se lo d y despues poder imprimir ese producto con sus caracteristicas si es que lo encontro, si no, volver a poder buscar o regresar al inicio, saludos
lo que busco es optimizar el codigo orientado a objetos.
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
Imágen de perfil de Óscar

busqueda en un arreglo de objetos

Publicado por Óscar (14 intervenciones) el 01/10/2016 17:32:49
¿Conoces algo de POO?
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
sin imagen de perfil

busqueda en un arreglo de objetos

Publicado por daniel (12 intervenciones) el 01/10/2016 17:51:16
la verdad que no, recien empiezo en esto y me cuesta un poco de trabajo, me dejan hacer unos programas y la verdad que complicadamente los saco
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
Imágen de perfil de Óscar

busqueda en un arreglo de objetos

Publicado por Óscar (14 intervenciones) el 01/10/2016 23:38:16
No acabo de entender bien tu pregunta. ¿Quieres ayuda para buscar un String dentro de un arreglo de Strings?
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
Imágen de perfil de Óscar

busqueda en un arreglo de objetos

Publicado por Óscar (14 intervenciones) el 02/10/2016 09:32:15
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/**
 * 02/10/2016
 * @author oscar
 */
public class Datos2 {
 
    // Clase Producto
    public static class Producto {
 
        int codigo;
        String descripcion;
        double precio;
 
        public Producto() {
        }
 
        public Producto(int codigo, String descripcion, double precio) {
            setCodigo(codigo);
            setDescripcion(descripcion);
            setPrecio(precio);
        }
 
        public int getCodigo() {
            return codigo;
        }
 
        public void setCodigo(int codigo) {
            this.codigo = codigo;
        }
 
        public String getDescripcion() {
            return descripcion;
        }
 
        public void setDescripcion(String descripcion) {
            this.descripcion = descripcion;
        }
 
        public double getPrecio() {
            return precio;
        }
 
        public void setPrecio(double precio) {
            this.precio = precio;
        }
 
        // Sobreescribimos el método toString() con lo que necesitemos
        @Override
        public String toString() {
            return "Producto{" + "codigo=" + codigo
                    + ", descripcion=" + descripcion
                    + ", precio=" + precio + '}';
        }
 
    }
 
    // Constante desacoplada del código. El valor 50 es arbitrario
    private static final int MAXIMO_NUM_PRODUCTOS = 50;
 
    // Clase principal para la ejecución del código
    public static void main(String[] args) {
        // Creamos el Array.
        Producto[] producto = new Producto[MAXIMO_NUM_PRODUCTOS];
        // Poblamos parcialmente el Array para realizar la búsqueda en el ejemplo
        producto[0] = (new Producto(1, "Plátano", 2.40));
        producto[1] = (new Producto(2, "Pera", 2.50));
        producto[2] = (new Producto(3, "Manzana", 1.99));
 
        // 
        int codigoABuscar = 2; // Por ejemplo buscamos el producto con el código 2
        int i = 0;
 
        // Utilizo un WHILE en lugar de un FOR para recorrer el bucle 
        //ya que si no existen valores asignados en algún elemento del Array,
        //lanzaría una excepción.
        while (producto[i] != null) {
            if (producto[i].getCodigo() == codigoABuscar) {
                mostrarProducto(producto[i]);
            }
            i++;
        }
    }
 
    // Creo un método para mostrar los productos de manera desacoplada al código.
    // Además este método podrá ser llamado desde cualquier parte del código 
    //que necesite mostrar un producto sin tener que escribirlo de nuevo
    //y si necesito mostrarlo en un jTextbox, por ejemplo, pues sólo lo 
    //modifico aquí sin tener que buscar por todo el código.
    public static void mostrarProducto(Producto producto) {
        System.out.println(producto);
    }
}
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