Transferir matriz para array

Oi galera,

Estou procurando ajuda para transferir elementos de uma matriz para um array, mas quanto mais tento mais o resultado fica longe do esperado…Alguém me poderia dar um exemplo?

Obrigada.

Amigo, como você quer fazer um milagre destes? posta o código ae.

De uma matriz para um ArrayList, você quer dizer?
Você pode fazer um ArrayList de ArrayList. Ou criar um objeto Linha e fazer uma ArrayList de Linhas, onde cada objeto Linha tem uma lista dentro dele.

ArrayList<ArrayList<Integer>> matriz; // no caso, para uma matriz de inteiros

ou

ArrayList<Linha> matriz; // ... // onde public class Linha { ArrayList<Integer> linha; }
Enfim… tem vários jeitos de fazer… o que você deve fazer é avaliar diversas maneiras e verificar qual delas fica melhor para o seu propósito :slight_smile:

Olá,

Não, é sem arraylist. Só quero simplesmente passar de duas dimensoes a uma dimensao

Por exemplo de dimensão L=3, C=3 para um array de dimensao 9(3*3), para poder conter todos os elementos da matriz.

Exemplo:

Matriz (3*3)

1 2 3
4 5 6
7 8 9

Array: 1 2 3 4 5 6 7 8 9

Alguém me poderia dar um exemplo? Já tentei mas nada funciona :cry:

Obrigado

0 1 2
3 4 5
6 7 8

Array: 0 1 2 3 4 5 6 7 8

0 é 30 + 0
2 é 3
0 + 2
4 é 31 + 1
6 é 3
2 + 0

O contrário disso, passar de array p/ matriz, usa-se divisão inteira e resto da divisão.

PS: Não se esqueça que as posições começam com zero.

Olá,

Obrigado pela resposta.

Acho q expliquei mal quando no exemplo pus numeros de 1 a 9 para o conteudo da matriz e do array. Acho q voce estava pensando que me referia aos indices, mas na verdade era ao conteudo. Mas esquecam esse exemplo. Aqui vai outro, com outros numeros para nao gerar confusao.

Matriz (3*3)

10 4 8
6 20 15
6 7 2

Array: 10 4 8 6 20 15 6 7 2

sabem como fazer?

Mais uma vez obrigado.

Eu estava falando de índices mesmo:

[0,0] [0,1] [0,2]
[1,0] [1,1] [1,2]
[2,0] [2,1] [2,2]

Array: [0,1,2,3,4,5,6,7,8]

0 é 30 + 0
2 é 3
0 + 2
4 é 31 + 1
6 é 3
2 + 0
8 é 3*2 + 2

indice no array = qtd linhas * indice da linha na matriz + indice da coluna na matriz

Oi,

Aqui vai o meu codigo que nao funciona. :roll:

public static void transferir (int numLinhas, int numColunas)
{
               int[] v= new int [numLinhas*numColunas];

		for(int i = 0; i < M.length; i++)
		{
			for(int j = 0; j < M[i].length; j++)
			{
				System.out.print ("M[" +i+ "] [" +j+ "] = " +M[i][j] + " ");  
				System.out.println ();

                                for (int k=0; k<v.length; k++)
			       {
				v[k]=M[i][j];
				System.out.println ("v[" +k+ "] =" +v[k]);
				}
                         }
                  }

pelo que entendi o indice k tem que ser = numLinhasij; certo?

Bom o meu problema é mesmo tranferi os elementos de um para outro e percorrer o array para armazenar os elementos. Percorrer a matriz isso eu consigo :oops: .

Alguem poderia corrigir o meu codigo?

Obrigado

int[] v = new int[M.length * M[0].length]; int count = 0; for (int i = 0; i<M.length; i++) for (int j = 0; j >< M[0].length;j++) v[count++] = M[i][j];
pronto tai…

e respondendo, o indice da Array “v” é um indice crescente, ou seja, o que vc precisa é de um contador, e não de uma conta entre i e j