Estou com uma duvida simples, procurei no forum e não consegui encontrar a resposta

seguinte
meu professor de estrutura de dados mandou um trabalho onde tenho que fazer duas buscas
uma comum varrendo todas as posições do vetor dinâmico(que eu mesmo tive que cria, pois ele não permetiu usar o que estava pronto)
e uma binária
mas como faz elas não é minha dúvida
o problema é que ele pediu que fosse medida a velocidade de ambas
e mostrasse na tela quanto tempo(em mili-segundos) levou cada uma das pesquisas
eu pesquisei aqui e descobri que o “Calendar” era capaz que pegar o horario ele mili segundos
mas ele retorna uma variável do tipo “long”
e se eu faço de diminuição entre o inicio e fim
na mensagem sempre retorna 0

Calendar C= Calendar.getInstance(); long inicio = C.getTimeInMillis(); . .//aqui ocorre a pesquisa . long fim = C.getTimeInMillis(); . .//e aqui validações de retorno da pesquisa . System.out.println("Levou "+(fim-inicio)+" Milisegundos");
essa é a parte do código que usei tentando mostrar esse tempo
se alguem puder me ajudar como faço pra consegui mostrar na tela quanto tempo levou a pesquisa
agradeço desde já
abraço a todos

Cara fiz uma implementaçãozinha rapida, que faz um iteração de 1.000.000 vezes imprime o numero um a cada iteração e mostra no final o tempo gasto no formato de “minuto:segundo:milisegundo”!

Exemplo:

private void geraTempo() {
		long tempoI = Calendar.getInstance().getTimeInMillis();
		for(int i=0; i<1000000; i++)
			System.out.println("1");
		
		long tempoF = Calendar.getInstance().getTimeInMillis();
		System.out.println("Tempo de processamento: " + new SimpleDateFormat("mm:ss:SSS").format(new Date(tempoF - tempoI)));
	}

Espero ter ajudado!
Abração!

tambem zerou tudo =/
vou tentar por a função inteira

public void Consulta(String Chave) throws ParseException{ No Aux=getInicio(); long tempoI = Calendar.getInstance().getTimeInMillis(); while(Aux!=null){ if(Aux.getNome().equalsIgnoreCase(Chave))break; Aux=Aux.getProx(); } long tempoF = Calendar.getInstance().getTimeInMillis(); if(Aux==null){ JOptionPane.showMessageDialog(null, "Palavra não encontrada"); System.out.println("Levou "+new SimpleDateFormat("mm:ss:SSS").format(new Date(tempoF-tempoI))+" Milisegundos"); } else{ JOptionPane.showMessageDialog(null, "Palavra encontrada"); System.out.println("Levou "+new SimpleDateFormat("mm:ss:SSS").format(new Date(tempoF-tempoI))+" Milisegundos"); } }
é algo que estou fazendo errado?
agradeço todos que puderem ajudar
e vlw cara por ter tentado xD
abraço

Utilizar System.currentTimeMillis() ou System.nanoTime() não resolveria o seu problema?

 public void consulta(String Chave) {

        No aux = getInicio();

        long start = System.currentTimeMillis();
        while (aux != null) {
            if (aux.getNome().equalsIgnoreCase(Chave)) {
                break;
            }
            aux = aux.getProx();
        }
        long end = System.currentTimeMillis();
        if (aux == null) {
            JOptionPane.showMessageDialog(null, "Palavra não encontrada");
        } else {
            JOptionPane.showMessageDialog(null, "Palavra encontrada");
        }
        System.out.printf("Tempo: %d %n", (end - start));
    }

Ai está o código com System.currentTimeMillis().

Ah, mais uma coisa brunolr, a convenção Java diz que os nomes de métodos e variáveis iniciam com minúscula, então seria bom que tu já alterasse o teu código.

o inicio delas em maiuscula
é um padrão que meu professor adotou
agora porque não sei =/
mas eu descobri o problema
é que no meu exemplo aquele enquanto pode se repetir uma vez
ou 3000 vezes
e quando são poucas vezes o computador leva menos de 1 mili segundo para fazer
ai ele aparecia zero
eu criei um arquivo com 1500 palvras
que iria fazer uma busca 1500 vezes caso não exista a palavra
ai sim apareceu
levou 16 mili segundos
desculpe incomoda-los
problema resolvido
obrigado por todos que ajudaram
abração