public class MyHashTable{
    static  private int maxElem;
    private Object[] chave;
    private Object[] valor;
    private int nElem;

    public MyHashTable(){
	maxElem=100;
	chave=new Object[maxElem];
	valor=new Object[maxElem];
	nElem=0;
    }

    public MyHashTable(int n){
	maxElem=(n>0 && n<=100 )? n : 100;
	chave=new Object[maxElem];
	valor=new Object[maxElem];
	nElem=0;
    }

    
    public int length(){
	return nElem;
    }

    public boolean isEmpty(){
	return nElem==0;
    }

    public boolean isFull(){
	return nElem==maxElem;
    }

    public Object elementAt(Object ch){
	int indice= procuraChave(ch);
	return valor[indice];
    }

    public boolean existeChave(Object ch){
	boolean encontrou=false;
	int i=0;
	while (!encontrou && i<nElem){
	    encontrou=ch.equals(chave[i]);
	    i++;
	}

	return encontrou;
    }


    private int procuraChave(Object ch){
	boolean encontrou=false;
	int i=0;
	while (!encontrou && i<nElem){
	    encontrou=ch.equals(chave[i]);
	    if (!encontrou)
		i++;
	}

	return i;
    }

    public void insereChaveValor(Object c, Object v){
	if (!existeChave(c) && !isFull()){
	    chave[nElem]=c;
	    valor[nElem]=v;
	    nElem++;
	}
    }
}
