Vetor, Array ou List?

Este método mostra direitinho dentro de uma jTable (resultados), só que mostra os mesmos nomes de times de um lado e outro da tabela… quero mostrar do lado esquerdo “Time A” o time normalmente e do lado direito “Time B” os times embaralhados sem se repetir o confronto!

Quem puder dar outra alternativa de como fazer isso usando List ou Array…

Abaixo vai o código do método…

[code]public void atualizaTabela() throws SQLException {
DefaultTableModel dtm = (DefaultTableModel) resultados.getModel();
while (dtm.getRowCount() > 0) {
dtm.removeRow(0);
}

    Connection con = Conexao.abrirConexao();
    String sqlTabela = "SELECT * FROM times WHERE torneio_id = " + torneioCombo.getSelectedIndex() + " "
            + "ORDER BY nome ASC";

    Vector<Vector> dados = new Vector<Vector>();

    PreparedStatement ps = con.prepareStatement(sqlTabela);
    ResultSet rs = ps.executeQuery();

    while (rs.next()) {

        String clube1 = rs.getString("nome");
        String gols = null;
        String x = "x";
        String gols2 = null;
        String clube2 = rs.getString("nome");

        Vector registrosLidos = new Vector();
        registrosLidos.add(clube1);
        registrosLidos.add(gols);
        registrosLidos.add(x);
        registrosLidos.add(gols2);
        registrosLidos.add(clube1);

        dados.add(registrosLidos);

        }

        for (int i = 0; i < dados.size(); i++) {
            dtm.addRow(dados.get(i));
        }
      
    }[/code]

Abaixo mostrando imagem do programa… como está

Alguém aí pra me ajudar???

O algoritmo é o mesmo, só vai mudar a estrutura de dados que está sendo utilizada, até acho melhor usar Vector nesse ponto, pois o mesmo é sincronizado.

E o que tem a ver ele ser sincronizado? Ele nem sequer usa multiplas threads…

Cria uma outra lista paralela, colocando só os nomes do time. Nesta lista vc faz:

Collections.shuffle(listaTimes); // embaralhando uma coleção

Depois vc faz um loop atribuindo os times dessa coleção à lista principal, em sequência, e testando se há repetição.

E o que tem a ver ele ser sincronizado? Ele nem sequer usa multiplas threads…

[/quote]+1