2014/05/28

Framework Collections - Interface Set

new Comment();
A interface Set estende a interface Collection. A principal característica é que não permite objetos duplicados. Entenda-se como objeto duplicado dois objetos que possuem o mesmo código hash gerado pelo método hashCode() da classe principal e que retornem verdadeiros na comparação feita pelo método equals().

Criamos a classe principal Aluno:
package SetLista;
import java.io.Serializable;

public class Aluno implements Serializable {
 private static final long serialVersionUID = -1795487259104879525L;

 private Long id;
 private String nome;

 public Long getId() {
  return id;
 }

 public void setId(Long id) {
  this.id = id;
 }

 public String getNome() {
  return nome;
 }

 public void setNome(String nome) {
  this.nome = nome;
 }

 public Aluno() {
  this.id = 0L;
  this.nome = "";
 }

 public Aluno(Long id, String nome) {
  this.id = id;
  this.nome = nome;
 }

 @Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result + ((id == null) ? 0 : id.hashCode());
  return result;
 }

 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  Aluno other = (Aluno) obj;
  if (id == null) {
   if (other.id != null)
    return false;
  } else if (!id.equals(other.id))
   return false;
  return true;
 }
}
Criamos o método principal:
package SetLista;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Main {
 public static void main(String[] args) {
  Set AlunosSet = new HashSet();

  Aluno aluno = new Aluno(1L, "Ferran");
  Aluno aluno2 = new Aluno(2L, "Afrain");

  AlunosSet.add(aluno);
  AlunosSet.add(aluno2);

  Iterator it = AlunosSet.iterator();

  while (it.hasNext()) {
   Aluno a = it.next();
   System.out.println("*************");
   System.out.print(a.getId());
   System.out.println(" - "+a.getNome());
  }

  System.out.println("Nº de alunos cadastrados na lista: " + AlunosSet.size());
 }
}

  • 9: Utilizando a Interface Set, criamos uma lista do tipo HashSet.
  • 11 - 12: Criamos duas instâncias de Aluno e atribuímos valores.
  • 17: Criamos uma instância de Iterator e atribuímos o resultado do método iterator da nossa lista.
  • 19: Percorremos a lista com o nosso iterator.
  • 20: Criamos uma instância de aluno que recebe cada objeto da lista em cada loop.
If You Enjoyed This, Take 5 Seconds To Share It

0 comentarios:

Postar um comentário