- El método equals desarrolla como se comparan dos objetos
- El método hashCode devuelve un identificador único.
Producto.java
public class Producto {
private String nombre;
private int cantidad;
public Producto(String s, int i) {
private int cantidad;
public Producto(String s, int i) {
nombre = s;
cantidad = i;
} public String toString(){
return ("Nombre: "+nombre+" Cantidad: "+cantidad);
}
public String getNombre() {
public String getNombre() {
return this.nombre;
}
public boolean equals( Object objeto ) {
public boolean equals( Object objeto ) {
if (objeto == null) return false;
Producto producto = (Producto)objeto;
if (this.getNombre().equals(producto.getNombre()) )
Producto producto = (Producto)objeto;
if (this.getNombre().equals(producto.getNombre()) )
return true;
return false;
public int hashCode() {
return this.getNombre().hashCode();
}
}
- Aun cuando se agregaron 6 elementos, la lista solo cuenta con 5. Set no permite duplicados.
- La evaluacion de duplicidad de objetos se realiza mediante los métodos equals y hashCode.
- Un Set no cuenta con indice, por lo que para eliminar un elemento se indica el objeto.
MercadoHashSet.java
import java.util.*;
public class MercadoHashSet
{
public static void main(String args[])
{
{
// Definir 5 instancias de la Clase Producto
Producto pan = new Producto("Pan", 6);
Producto leche = new Producto("Leche", 2);
Producto manzanas = new Producto("Manzanas", 5);
Producto brocoli = new Producto("Brocoli", 2);
Producto carne = new Producto("Carne", 2);
Producto res = new Producto("Carne", 3);
// Definir un HashSet
HashSet lista = new HashSet();
lista.add(pan);
lista.add(leche);
lista.add(manzanas);
lista.add(brocoli);
lista.add(carne);
lista.add(res);
// Imprimir contenido de HashSet
// Aunque son insertados 6 elementos, el HashSet solo contiene 5
// Se debe a que un Set no permite elementos duplicados.
System.out.println(" Lista del mercado con " + lista.size() +
" productos");
// Definir Iterator para extraer e imprimir valores
for( Iterator it = lista.iterator(); it.hasNext(); ) {
Producto pan = new Producto("Pan", 6);
Producto leche = new Producto("Leche", 2);
Producto manzanas = new Producto("Manzanas", 5);
Producto brocoli = new Producto("Brocoli", 2);
Producto carne = new Producto("Carne", 2);
Producto res = new Producto("Carne", 3);
// Definir un HashSet
HashSet lista = new HashSet();
lista.add(pan);
lista.add(leche);
lista.add(manzanas);
lista.add(brocoli);
lista.add(carne);
lista.add(res);
// Imprimir contenido de HashSet
// Aunque son insertados 6 elementos, el HashSet solo contiene 5
// Se debe a que un Set no permite elementos duplicados.
System.out.println(" Lista del mercado con " + lista.size() +
" productos");
// Definir Iterator para extraer e imprimir valores
for( Iterator it = lista.iterator(); it.hasNext(); ) {
Object objeto = it.next();
Producto producto = (Producto)objeto;
System.out.println(producto);
Producto producto = (Producto)objeto;
System.out.println(producto);
}
// No es posible eliminar elementos por indice
// En un HashSet solo se elimina por valor de Objeto
lista.remove(manzanas);
System.out.println(" Lista del mercado con " + lista.size() +
" productos");
for( Iterator it2 = lista.iterator(); it2.hasNext();) {
// No es posible eliminar elementos por indice
// En un HashSet solo se elimina por valor de Objeto
lista.remove(manzanas);
System.out.println(" Lista del mercado con " + lista.size() +
" productos");
for( Iterator it2 = lista.iterator(); it2.hasNext();) {
Producto producto = (Producto)it2.next();
System.out.println(producto);
System.out.println(producto);
}
// Eliminar todos los valores del ArrayList
lista.clear();
System.out.println(" Lista del mercado con " + lista.size() +
" productos");
} // Eliminar todos los valores del ArrayList
lista.clear();
System.out.println(" Lista del mercado con " + lista.size() +
" productos");
0 comentarios:
Publicar un comentario