Matriz Dinamica

7 respostas
N

Olá amigos,

Gostaria de saber como faço para declarar uma matriz dinamica, pois a quantidade de registros que ela irá armazenar é desconhecida.

Um abraço,

7 Respostas

D

Mas como vc quer uma estrutura de matriz, vc vai precisar fazer um ArrayList que contenha um ou vários ArrayLists

int linhas = 2;

ArrayList< ArrayList > matriz = new ArrayList< ArrayList>();

for ( int i = 0; i < linhas; i++ ) {
    // seu Objeto é a classe que representa o objeto q vc ta armazenando no ARrayList
    matriz.add( new ArrayList< SeuObjeto >() );
}


// para acessar
public SeuObjeto getObjeto( ArrayList matriz, int linha, int coluna ) {
    return matriz.get( linha ).get( coluna );
}

Falow!

P

Isso, exatamente o que eu precisava!

F
davidbuzatto:
Mas como vc quer uma estrutura de matriz, vc vai precisar fazer um ArrayList que contenha um ou vários ArrayLists
int linhas = 2;

ArrayList< ArrayList > matriz = new ArrayList< ArrayList>();

for ( int i = 0; i < linhas; i++ ) {
    // seu Objeto é a classe que representa o objeto q vc ta armazenando no ARrayList
    matriz.add( new ArrayList< SeuObjeto >() );
}


// para acessar
public SeuObjeto getObjeto( ArrayList matriz, int linha, int coluna ) {
    return matriz.get( linha ).get( coluna );
}

Falow!


Cara sei que esse post é antigo, mas estou c esse problema e infelizmente não estou conseguindo fazer isso usando essa dica sua. Tipo preciso gerar uma matriz dinamica q a principio possui 50 elementos (individuos), porém ela vai crescer futuramente devido a cruzamentos (Alg Genetico). Peço a ajuda sua e de todos o mais rápido possível. Grato

F

noobsaibot:
Olá amigos,

Gostaria de saber como faço para declarar uma matriz dinamica, pois a quantidade de registros que ela irá armazenar é desconhecida.

Um abraço,

Cara queria saber se tu conseguiu fazer essa matriz dinamica??!! Se sim, como q vc fez???!!
Grato

R
fdsassuncao:
davidbuzatto:
Mas como vc quer uma estrutura de matriz, vc vai precisar fazer um ArrayList que contenha um ou vários ArrayLists
int linhas = 2;

ArrayList< ArrayList > matriz = new ArrayList< ArrayList>();

for ( int i = 0; i < linhas; i++ ) {
    // seu Objeto é a classe que representa o objeto q vc ta armazenando no ARrayList
    matriz.add( new ArrayList< SeuObjeto >() );
}


// para acessar
public SeuObjeto getObjeto( ArrayList matriz, int linha, int coluna ) {
    return matriz.get( linha ).get( coluna );
}

Falow!


Cara sei que esse post é antigo, mas estou c esse problema e infelizmente não estou conseguindo fazer isso usando essa dica sua. Tipo preciso gerar uma matriz dinamica q a principio possui 50 elementos (individuos), porém ela vai crescer futuramente devido a cruzamentos (Alg Genetico). Peço a ajuda sua e de todos o mais rápido possível. Grato

Pro seu problema, acho que uma List resolve. Conforme for criando filhos, basta adicioná-los à List.

Dependendo da técnica (se os pais sempre forem substituídos, por exemplo), a lista nem precisaria ser dinâmica e poderia usar um simples array. Nesse caso, ao criar os filhos, você os escreveria em cima dos pais. Ex:

//sorteia índices i e j
//pai1 = cromossomos[i]
//pai2 = cromossomo[j]
//cria filho1 e filho2 por meio de pai1 e pai2
//cromossomos[i] = filho1
//cromossomos[j] = filho2

F
regis_hideki:
fdsassuncao:
davidbuzatto:
Mas como vc quer uma estrutura de matriz, vc vai precisar fazer um ArrayList que contenha um ou vários ArrayLists
int linhas = 2;

ArrayList< ArrayList > matriz = new ArrayList< ArrayList>();

for ( int i = 0; i < linhas; i++ ) {
    // seu Objeto é a classe que representa o objeto q vc ta armazenando no ARrayList
    matriz.add( new ArrayList< SeuObjeto >() );
}


// para acessar
public SeuObjeto getObjeto( ArrayList matriz, int linha, int coluna ) {
    return matriz.get( linha ).get( coluna );
}

Falow!


Cara sei que esse post é antigo, mas estou c esse problema e infelizmente não estou conseguindo fazer isso usando essa dica sua. Tipo preciso gerar uma matriz dinamica q a principio possui 50 elementos (individuos), porém ela vai crescer futuramente devido a cruzamentos (Alg Genetico). Peço a ajuda sua e de todos o mais rápido possível. Grato

Pro seu problema, acho que uma List resolve. Conforme for criando filhos, basta adicioná-los à List.

Dependendo da técnica (se os pais sempre forem substituídos, por exemplo), a lista nem precisaria ser dinâmica e poderia usar um simples array. Nesse caso, ao criar os filhos, você os escreveria em cima dos pais. Ex:

//sorteia índices i e j
//pai1 = cromossomos[i]
//pai2 = cromossomo[j]
//cria filho1 e filho2 por meio de pai1 e pai2
//cromossomos[i] = filho1
//cromossomos[j] = filho2


Ok Cara Obrigado pela ajuda, vou tentar aqui, qualquer coisa posto aqui!!!

V

Você pode usar um ArrayList, e ir adicionando os elementos conforme for conveniente.
Assim ó:

ArrayList list = new ArrayList();
list.add(objeto1);
list.add(objeto2);
Object o = list.get(indice);

E assim por diante.
A maioria das classes que você vai precisar está no pacote java.util.

Criado 23 de setembro de 2006
Ultima resposta 23 de set. de 2006
Respostas 7
Participantes 6