Ajuda no código de hash - problema na hora de imprimir as variáveis

Boa tarde, estou com um problema no meu código, ele faz a inserção normalmente, mais na hora de imprimir ele “morre”
não encontrei esse erro…
alguém pode me ajudar??

o codigo está aki do main.java e hash.java

[code]public class Main {
public static void main(String[] arges) {
Hash a = new Hash(11);

    String valor;

    do {
        valor = JOptionPane.showInputDialog(null, "entre com algo");
        if (!valor.equals("")) {
            a.inserir(Integer.parseInt(valor));
        }
    }
    while (!valor.equals(""));
    a.imprime();
}

}

public class Hash {
// public class hash {

Lista[] hash;

public Hash(int tam) {
    hash = new Lista[tam];
    for (int i = 0; i < tam; i++) {
        hash[i] = new Lista();
    }
}

public int calchash(j x) {
    return (Integer) x % hash.length;
}

public void inserir(j valor) {
    int pos = calchash(valor);
    hash[pos].inserir(valor);
}

public No remover(j x) {
    int pos = calchash(x);
    return hash[pos].remove(x);

}

public No busca(j x) {
    int pos = calchash(x);
    return hash[pos].busca(x);

}

public void imprime() {
    for (int i = 0; i < hash.length; i++) {
        
        System.out.println("o Hash na posição: "+i+" é:");
        hash[i].imprime();
    }
}

}[/code]

Muito obrigado pela atenção!!!

Você pode rodar seu programa em uma linha de comando (em vez de dar um duplo clique - deixe de ser preguiçoso!) e então ver o “stack trace”. Então pode postar o stack trace aqui para a gente poder olhar. Que tal? Sem dizer em que linha ele morre, não tem como saber o que está errado.
Outra forma é ver, na sua IDE preferida, como é que você visualiza a saída do console (que é onde são registrados os “stack traces”).
Talvez sabendo isso você mesmo consiga corrigir seu problema, não?
Dica: poste também a classe Lista. Pode ser que o erro esteja nela, não?

ahm… me desculpe pelas colocações que eu tive no meu projetinho…
no caso, pedi só uma ajuda pra saber se minha linha de código dessa parte está correta certo…
e sobre o “morreu” é que ele fica como dando um laço infinito, então pede para parar, ele não imprime.
Me desculpe pelo oque eu coloquei aqui…
mais vou passar a class Lista aqui pra o senhor se quiser me corrigir de boa, aqui está.

[code]public class Lista {
// public class lista {
// saber o valor da raíz.

private No cabeca;

public No getCabeca() {
    return cabeca;
}

public void setCabeca(No cabeca) {
    this.cabeca = cabeca;
}

public Lista() {
    this.cabeca = null;
}

public void inserir(j valor) {
    No novo = new No(valor);
    novo.setProx(cabeca);
    cabeca = novo;
}

public No remove(j valor) {
    return remove(valor, cabeca);
}

private No remove(j valor, No n) {

    if (n == null) {
        return null;
    } else if (n.getValor() == valor) {
        No aux = n;
        n.setProx(n.getProx());
        n = null;
        return aux;
    } else {
        return remove(valor, n.getProx());
    }
}

public No busca(j valor) {
    return remove(valor, cabeca);
}

public No busca(j valor, No n) {

    if (n == null) {
        return null;

    } else if (n.getValor() == valor) {
        return n;
    } else {
        return busca(valor, n.getProx());
    }
}

public void imprime() {
    No aux = cabeca;
    while (aux != null) {
        System.out.print(aux);
        aux = aux.getProx();
    }
    System.out.println();


}

}

public class No {
//public class no {

private No prox;

public No getProx() {
    return prox;
}

public void setProx(No prox) {
    this.prox = prox;
}

public j getValor() {
    return valor;
}

public void setValor(j valor) {
    this.valor = valor;
}
private j valor;

//Construtor

public No( j valor) {
    this.prox = null;
    this.valor = valor;
}


@Override

public String toString() {
return (String) " ("+getValor()+") ";
}
}[/code]

já aproveitei e mandei o meu No… oks

des de já agradeço e peço desculpas pela colocação.

Ah, pensei que o programa tinha parado com um stack trace.
(Por exemplo, aquela ex-amante do tal goleiro deve ter morrido mesmo, não ficou em laço infinito :evil: )
Não tinha imaginado que ele tinha “travado” (que é o termo que a gente normalmente usa).