PRO_gramer

vetor mapa espalhamento

Jun 22nd, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.00 KB | None | 0 0
  1. package cadastro;
  2. import java.util.ArrayList;
  3. import java.util.LinkedList;
  4. import java.util.List;
  5.  
  6. public class MapaEspalhamento {
  7. private ArrayList<List<Associacao>> tabela = new ArrayList<List<Associacao>>();
  8.  
  9.     public MapaEspalhamento() {
  10.         for (int i = 0; i < 100; i++) {
  11.         this.tabela.add(new LinkedList<Associacao>());
  12.         }}
  13.     private int calculaIndiceDaTabela(String cpf) {
  14.         return Math.abs(cpf.hashCode()) % this.tabela.size();
  15.         }
  16.  
  17.     public boolean contemCpf(String cpf) {
  18.     int indice = this.calculaIndiceDaTabela(cpf);
  19.     List<Associacao> lista = this.tabela.get(indice);
  20.     for (int i = 0; i < lista.size(); i++) {
  21.     Associacao associacao = lista.get(i);
  22.     if (associacao.getCpf().equals(cpf)) {
  23.     return true;
  24.     }
  25.     }
  26.     return false;
  27.     }
  28.    
  29.     public void remove(String cpf) {
  30.         int indice = this.calculaIndiceDaTabela(cpf);
  31.         List<Associacao> lista = this.tabela.get(indice);
  32.         for (int i = 0; i < lista.size(); i++) {
  33.         Associacao associacao = lista.get(i);
  34.         if (associacao.getCpf().equals(cpf)) {
  35.         lista.remove(i);
  36.         return;
  37.         }
  38.         }
  39.         throw new IllegalArgumentException("A chave não existe");
  40.         }
  41.    
  42.     public void adiciona(String cpf, String pessoa) {
  43.         if (this.contemCpf(cpf)) {
  44.         this.remove(cpf);
  45.         }
  46.         int indice = this.calculaIndiceDaTabela(cpf);
  47.         List<Associacao> lista = this.tabela.get(indice);
  48.         lista.add(new Associacao(cpf, pessoa));
  49.         }
  50.    
  51.     public String pega(String cpf) {
  52.         int indice = this.calculaIndiceDaTabela(cpf);
  53.         List<Associacao> lista = this.tabela.get(indice);
  54.         for (int i = 0; i < lista.size(); i++) {
  55.             Associacao associacao = lista.get(i);
  56.             if (associacao.getCpf().equals(cpf)) {
  57.             return associacao.getPessoa();
  58.             }
  59.             }
  60.             throw new IllegalArgumentException("A chave não existe");
  61.    
  62.     }
  63.             public  List<List<Associacao>> pegaTodas(){
  64.                 List<List<Associacao>> associacoes= new ArrayList<List<Associacao>>();
  65.                 for(int i=0;i<this.tabela.size();i++){
  66.                 associacoes.addAll(this.tabela.get(i));
  67.             }
  68.            
  69.             return associacoes;
  70.             }
  71.    
  72.        
  73.    
  74. }
Advertisement
Add Comment
Please, Sign In to add comment