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.
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
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
Obrigado
0 1 2
3 4 5
6 7 8
Array: 0 1 2 3 4 5 6 7 8
0 é 30 + 0
2 é 30 + 2
4 é 31 + 1
6 é 32 + 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 é 30 + 2
4 é 31 + 1
6 é 32 + 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