Problema ao preencher tabela com resultado de consulta

Estou tendo problemas ao preencher uma tabela com o resultados de uma consulta.
A consulta tem por resultado uma tabela com duas colunas e eu estou tentando povoar uma jTable com duas colunas também. Na primeira coluna deverá ser listado os nomes dos níveis dos alunos e na coluna 2 as idades médias dos alunos do nível correspondente, tudo obtido através de um único SELECT.

Cheguei até o seguinte trecho de código:

private void montaTabela() {
        alunos = new ArrayList<Aluno>();
        DefaultTableModel tableModel = new DefaultTableModel();
        tableModel.setColumnIdentifiers(new String[]{"Nivel", "Idade media"});

        List<String> list = new ArrayList<String>();
        list = new dao.Dao<Aluno>(Aluno.class).listQuestao8();

        for (int i = 0; i < list.size() - 1; i++) {
            tableModel.addRow(new Object[]{list.get(i), list.get(i + 1)});
        }

        jTable2.setModel(tableModel);
}

Ele consegue povoar a tabela de maneira correta, mas não com os nomes dos níveis e médias, mas sim com a posição que esses dados ocupam na memória (eu acho). Fica mais ou menos assim:

Desde já obrigado.

Experimentastes usar o tostring após o get(i) e get(i+1)?

Já sim, quando tento por esse método ele apresenta o seguinte erro:
[color=red]Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String[/color]