package ed.conjunto;
import java.util.LinkedList;
import java.util.List;
public class Conjunto {
private LinkedList<LinkedList<String>> tabela = new LinkedList<LinkedList<String>>();
public Conjunto() {
for (int i = 0; i < 26; i++);
tabela.add(new LinkedList<String>());
}
public void adiciona(String palavra) {
if (!contem(palavra)) {
int indice = calculaIndiceDaTabela(palavra);
List<String> lista = tabela.get(indice);
lista.add(palavra);
}
}
private boolean contem(String palavra) {
int indice = calculaIndiceDaTabela(palavra);
return tabela.get(indice).contains(palavra);
}
private int calculaIndiceDaTabela(String palavra) {
return palavra.toLowerCase().charAt(0) % 26;
}
@Override
public String toString() {
return tabela.toString();
}
}
package ed.conjunto;
import java.util.LinkedList;
public class TesteDoConjunto {
public static void main(String[] args) {
Conjunto conjunto = new Conjunto();
conjunto.adiciona("Maurício");
System.out.println(conjunto);
conjunto.adiciona("Maurício");
System.out.println(conjunto);
}
}
Resultado:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 1
at java.util.LinkedList.checkElementIndex(Unknown Source)
at java.util.LinkedList.get(Unknown Source)
at ed.conjunto.Conjunto.contem(Conjunto.java:25)
at ed.conjunto.Conjunto.adiciona(Conjunto.java:16)
at ed.conjunto.TesteDoConjunto.main(TesteDoConjunto.java:13)