Lista encadeada - Duvida

Eu estou tentando exibir ,mas nao estou conseguindo. Aqui um trecho do codigo:

public class maintst
{
  public static void main(String[] args)
  { 										

    List<funcionario> lista = new LinkedList<funcionario>(); 

    String nome = JOptionPane.showInputDialog("Nome");	
    int qtd = Integer.parseInt(JOptionPane.showInputDialog("Quantidade"));					
    double valor= Double.parseDouble(JOptionPane.showInputDialog("Valor"));
    engenheiro e1 = new engenheiro(nome,qtd,valor);
    lista.add(e1);

    //exibir
    ListIterator <funcionario> i = lista.listIterator();
    while(i.hasNext());
             System.out.printf("%s",i.next().toString());
  }
}

Retire o ; da linha 16.

nooossa , agora que vi!!! e eu pensando que a logica tava errado . Valeu ViniGodoy !!!

Esse é um erro clássico. Nós professores já temos os olhos treinados para idenficá-lo. hehehehe

Uma dica. Nome de classes geralmente começam com letras maiúsculas (Funcionario, Engenheiro, Maintst). Deixe os nomes com inicio minúsculo para variáveis (list, nome, qtd, valor, e1).
O java tem um conjunto de convenções de código, é bom que você já aprenda a segui-las: http://www.oracle.com/technetwork/java/codeconv-138413.html

O programa sem elas não fica errado, mas fica bem mais difícil de ler.