Considerar:
int[][] multD = new int[5][];
multD[0] = new int[10];
É assim que você cria uma matriz bidimensional com 5 linhas e 10 colunas?
Eu vi esse código online, mas a sintaxe não fazia sentido.
java
multidimensional-array
AppSensei
fonte
fonte
Respostas:
Tente o seguinte:
... que é uma mão curta para algo como isto:
Note-se que todos os elementos serão inicializados com o valor padrão para
int
,0
, de modo que o acima são também equivalente a:fonte
new int[][]
na=new int[][]{...}
variante? Podemos apenas escrever={...}
?new
palavra-chave.int array[][] = new int[3][];
VSint array[][] = new int[][3];
?? qual é legal, já que li as duas versões em algum lugar.Podemos declarar uma matriz bidimensional e armazenar diretamente elementos no momento de sua declaração como:
Aqui int representa elementos do tipo inteiro armazenados na matriz e o nome da matriz é 'marks'. int é o tipo de dados para todos os elementos representados dentro dos colchetes "{" e "}" porque uma matriz é uma coleção de elementos com o mesmo tipo de dados.
Voltando à nossa declaração escrita acima: cada linha de elementos deve ser escrita dentro das chaves. As linhas e os elementos em cada linha devem ser separados por vírgulas.
Agora observe a instrução: você pode obter 3 linhas e 5 colunas, portanto a JVM cria 3 * 5 = 15 blocos de memória. Esses blocos podem ser referidos individualmente como:
NOTA:
Se você deseja armazenar n elementos, o índice da matriz começa em zero e termina em n-1 . Outra maneira de criar uma matriz bidimensional é declarar a matriz primeiro e depois alocar memória para ela usando o novo operador.
Combinando os dois acima, podemos escrever:
fonte
Você pode criá-los da maneira que os outros mencionaram. Mais um ponto a acrescentar: Você pode até criar uma matriz bidimensional inclinada com cada linha, sem necessariamente ter o mesmo número de colunas, assim:
fonte
int array[][] = new int[3][];
VSint array[][] = new int[][3];
?? qual é legal, já que li as duas versões em algum lugar.O idioma mais comum para criar uma matriz bidimensional com 5 linhas e 10 colunas é:
Como alternativa, você pode usar o seguinte, que é mais semelhante ao que você possui, embora seja necessário inicializar explicitamente cada linha:
fonte
Object[][] ary2d = new Object[5][10];
então, ainda deverá inicializar cada elemento da matriz 2D.null
caso com segurança para quaisquer não primitivos. Se você deve ou não inicializar cada elemento, depende completamente do seu design. Além disso, apenas para esclarecer - as primitivas não podem ser nulas e são instanciadas para um valor padrão definido se não tiver sido atribuído por você. Por exemplo, umint
não pode ser nulo e quando você dizint i;
sem atribuir um valor, o padrão0
é usado. Leia aquiTambém é possível declará-lo da seguinte maneira. Não é um bom design, mas funciona.
fonte
Tentar:
Observe que no seu código apenas a primeira linha da matriz 2D é inicializada como 0. As linhas 2 a 5 nem existem. Se você tentar imprimi-los, conseguirá
null
todos eles.fonte
fonte
Em Java, uma matriz bidimensional pode ser declarada como a mesma de uma matriz unidimensional. Em uma matriz unidimensional, você pode escrever como
onde int é um tipo de dados, array [] é uma declaração de array e
new array
é um array com seus objetos com cinco índices.Assim, você pode escrever uma matriz bidimensional como a seguir.
Aqui
array
está um tipo de dados int. Em primeiro lugar, declarei em uma matriz unidimensional desses tipos, então uma matriz de 3 linhas e 4 colunas é criada.No seu código
significa que você criou uma matriz bidimensional, com cinco linhas. Na primeira linha, existem 10 colunas. Em Java, você pode selecionar o tamanho da coluna para cada linha conforme desejar.
fonte
Aproveitar!
fonte
Tente desta maneira:
fonte
Esses tipos de matrizes são conhecidos como matrizes irregulares em Java:
Nesse cenário, cada linha da matriz mantém o número diferente de colunas. No exemplo acima, a primeira linha conterá três colunas, a segunda linha conterá duas colunas e a terceira linha conterá cinco colunas. Você pode inicializar essa matriz em tempo de compilação, como abaixo:
Você pode facilmente iterar todos os elementos em sua matriz:
fonte
Na verdade, o Java não possui matriz multidimensional no sentido matemático. O que o Java possui é apenas uma matriz de matrizes, uma matriz em que cada elemento também é uma matriz. É por isso que o requisito absoluto de inicializá-lo é o tamanho da primeira dimensão. Se o restante for especificado, ele criará uma matriz preenchida com o valor padrão.
Também nos dá uma peculiaridade. O tamanho da sub-matriz não pode ser alterado adicionando mais elementos, mas podemos fazer isso atribuindo uma nova matriz de tamanho arbitrário.
fonte