• Viernes 8 de Noviembre de 2024, 23:14

Autor Tema:  Re: Ayuda Con Colecciones  (Leído 1423 veces)

escape

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Ayuda Con Colecciones
« en: Jueves 28 de Diciembre de 2006, 03:22 »
0
Hola, poseo una interfaz en swing con varios JTextField dentro de los cuales destaca el JTextField que ingresa un código de un lote de producción. Cada lote ingresa en la interfaz lo siguiente: nombre del producto, fecha, cantidad, kilos defectuosos y total kilos a bodega.

Es decir, el codigo del lote es único para cada producción. Por lo tanto, no se debe permitir el ingreso de códigos de lote repetidos.

Además, poseo un botón llamado Agregar, el cual debe cada vez que se presiona, ingresar los datos de los JTextFields a una colección. Como expliqué, el código es único, por lo tanto la colección que use no debe aceptar datos repetidos, por esto he descartado el uso de las clases ArrayList y LinkedList. Me quedo con las colecciones que implementen la interface Set: HashSet o TreeSet.

Si tengo:

HashSet hs = new HashSet();

hs.add("tCodigo.getText()"); // tCodigo es mi TextField donde se ingresa el código
hs.add("Producto Uno");
hs.add("tCantidad.getText()"); // tCantidad es el JTextField donde se ingresa una   cierta cantidad.


//sigo agregando al HashSet

hs.add("tCodigo.getText()"); // este código es distinto al de arriba
hs.add("Producto Dos");
hs.add("tCantidad.getText()");

en esta última línea de codigo es donde tengo la duda. Imaginen que los codigos son distintos, esto implica que sera´n agregados a la colección: ahora, si tCantidad.getText() es el mismo valor, este último no será agregado a la colección a pesar de pertenecer a lotes distintos. Es algo asi:

Codigo 1
Nombre Producto : Shampoo
Cantidad: 50

Codigo 2
Nombre Producto: Aceite
Cantidad: 50



Es decir, los codigos son distintos y los productos tb. lo son, pero la cantidad es la misma (algo que puede ocurrir en la realidad).


Qué colección o forma de trabajar plantean Uds.?

Gracias.

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Ayuda Con Colecciones
« Respuesta #1 en: Jueves 28 de Diciembre de 2006, 05:05 »
0
yo creo que lo primero es crear una clase que refleje claramente los valores que poseerá el objeto, por ejemplo:

nombre del producto, fecha, cantidad, kilos defectuosos y total kilos a bodega y los que se te ocurra deven ir en un objeto como atrirbutos y con los métodos públicos necesarios para acceder a estos...

Luego te recomiendo utilizar un HashMap para almacenarlos en forma de BD ya que dices que cada producto tiene un código único. enconces sería algo como esto

Código: Text
  1. HashMap<String,ProductoVO> conjuntoDeProductos = new HashMap<String,ProductoVO>();
  2. ...
  3. ...
  4. ...
  5. public void actionPerformed(ActionEvend ev) {
  6.     ProductoVO unProd = new ProductoVO();
  7.     conjuntoDeProductos.set(codigo.getText().trim(),unProd);
  8.     unProd.setNomProducto(producto.getText().trim());
  9.     unProd.setFecha....
  10.  
  11.     // y haces lo mismo con el resto de atributos
  12.     ...
  13.     ...
  14. }
  15.  
Y listo ya tienes lo que querías de una forma ordenada y clara además de ser muy OO

Si hay errores en lo que te hize pues es lógico por que no tengo donde corregir en este momento, así que de corazón espero que tengas la suficiente perspicasia para solucionar los problemas que se te presenten...

PDT. NO SE QUE HAGO AQUÍ POR QUE ESTOY EN MIS VACACIONES........

Cordialmente,

Antony
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Ayuda Con Colecciones
« Respuesta #2 en: Jueves 28 de Diciembre de 2006, 05:14 »
0
Porque mejor no intentas usar tablas de Hash HashTable , ahi lo que hacés es ingresar una clave para cada objeto que metes, y tambien estas HashTables, tienen metodos que te dices si una clave ya esta contenida ahi o no.

Citar
   containsKey(Object key)
          Tests if the specified object is a key in this hashtable.

Deverías ver como funcionan, talvez eso es lo que necesités.
Un dia sin sol es como, ya sabes, ... noche

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Ayuda Con Colecciones
« Respuesta #3 en: Jueves 28 de Diciembre de 2006, 05:16 »
0
:P  :P  :P se me adelantaron. Bueno, ahi hay dos formas de hacerlo, con Hashtable o Hashmap.
Un dia sin sol es como, ya sabes, ... noche

escape

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Ayuda Con Colecciones
« Respuesta #4 en: Viernes 5 de Enero de 2007, 05:48 »
0
gracias, estoy pensando sus ideas.  :P ....por la cresta que odio las colecciones  :( ,  dan ganas de tirar la esponja y no seguir  :(