Uma matriz é uma coleção de variáveis que são de tipos de dados semelhantes e são referenciadas por um nome comum. Um elemento específico em uma matriz é acessado por um índice específico dessa matriz. Matrizes em Java funcionam de maneira diferente em comparação com o C ++. O principal tópico de nossa discussão é a diferença entre as matrizes unidimensionais e bidimensionais. Uma matriz unidimensional é uma lista de variáveis com o mesmo tipo de dados, enquanto a matriz bidimensional é uma "matriz de matrizes" com tipos de dados semelhantes. C ++ não tem verificação vinculada em arrays, enquanto Java tem verificação de limite restrito em arrays. Então, vamos começar com as diferenças entre as matrizes de uma dimensão e de duas dimensões, juntamente com um gráfico de comparação. Show Gráfico de comparação:
Definição de matriz unidimensional (matriz 1-D)Uma matriz unidimensional ou unidimensional é considerada a “lista de variáveis de tipos de dados semelhantes”, e cada variável pode ser acessada distintamente especificando seu índice entre colchetes precedido pelo nome dessa matriz. Em C ++, a declaração de uma variável array com tamanho é suficiente para alocar espaço para eles na memória. Em Java, isso é alcançado em duas etapas. Primeiro, você deve declarar uma variável do tipo desejado. Segundo, você deve alocar a memória para manter a matriz usando 'novo' e atribuí-la à variável de matriz declarada. Portanto, as matrizes são alocadas dinamicamente em Java.Vamos discutir em contexto C ++ // declaração em tipo C ++ nome_variável [tamanho];Aqui o tipo declara o tipo de dados da variável array, e o tamanho define o número de elemento que o array manterá. Por exemplo, se quisermos declarar uma matriz que conterá o saldo de cada mês do ano. // example int month_balance [12];O _balance do mês é a variável do array que conterá os 12 inteiros, que representarão o saldo de cada mês. Agora, se quisermos acessar o saldo do mês 'Abril', simplesmente tivemos que mencionar o nome da variável seguido pelo colchete contendo o valor do índice para o mês de abril, ou seja, 'saldo_do_mês [3]'. Mas como 'abril' é o quarto mês do ano, mas nós mencionamos '[3]' porque todos os arrays têm 0 como o índice do primeiro elemento. Em Java, isso pode ser feito // declaração no tipo Java nome_variável []; nome_variável = novo tipo [tamanho];Aqui, inicialmente, tínhamos declarado uma variável array com seu tipo e, em seguida, alocamos memória a ela usando 'new' e atribuímos 'new' à variável array declarada. Vamos dar o exemplo acima se quisermos declarar um array que conterá o saldo em cada mês do ano. // example int month_balance []; month_balance = new int [12];Aqui, 'new' aloca a memória para a variável array “month_balance”, então, agora, mont_balance agora armazenará a memória para 12 valores inteiros. Arrays podem ser inicializados quando são declarados. Um inicializador de matriz é a lista de valores separados por vírgula entre as chaves. Definição de Matriz Bidimensional (Matriz 2-D)Tanto o C ++ quanto o Java suportam o array multidimensional. Uma das formas mais simples de um array multidimensional é um array bidimensional ou um array bidimensional. Um array bidimensional pode ser considerado como 'array de arrays' ou 'array de arrays unidimensionais'. Para declarar a variável matriz bidimensional, temos que especificar o nome da matriz seguido por dois colchetes, onde o segundo índice é o segundo conjunto de colchetes. Uma matriz bidimensional é armazenada na forma da matriz da coluna da linha, onde o primeiro índice indica a linha e o segundo índice indica a coluna. O segundo ou o índice mais à direita de um array muda muito rapidamente quando comparado ao primeiro índice ou ao índice mais à esquerda enquanto acessa os elementos de um array. Em C ++, o array bidimensional é declarado como; // declaração em tipo C ++ nome_da_variável [tamanho1] [tamanho2];Por exemplo, queremos armazenar o saldo de cada 30 dias em cada mês do ano, em uma matriz 2-D. // example int month_balance [12] [30];Em Java, o array bidimensional é obtido por // declaração no tipo Java variable_name = new int [size1] [size2]; // example int month_balance = new int [12] [30];Como não podemos passar a matriz inteira como um parâmetro para uma função, um ponteiro para o primeiro elemento da matriz é passado. Um argumento que recebe a matriz bidimensional deve definir a dimensão mais à direita. A dimensão mais à direita é necessária porque o compilador precisa dela, para confirmar o comprimento de cada linha se quiser indexar a matriz corretamente. Se o índice mais à direita não for mencionado, o compilador não poderá determinar onde a próxima linha será iniciada. // exemplo em Java void receiveing_funct (int a [] [10]) {. . . }Quando a memória está sendo alocada dinamicamente para o array bidimensional em Java, o índice mais à esquerda é especificado e as dimensões restantes podem ser alocadas separadamente, ou seja, todas as linhas do array podem não ser do mesmo tamanho. // exemplo em Java int month_balance = new int [12] []; month_balance [0] = novo int [31]; month_balance [1] = novo int [28]; saldo_do_mês [2] = novo int [31]; month_balance [3] = novo int [30]; month_balance [4] = novo int [31]; month_balance [5] = novo int [30]; month_balance [6] = novo int [31]; month_balance [7] = novo int [30]; month_balance [8] = novo int [31]; month_balance [9] = novo int [30]; saldo_do_mês [10] = novo int [31]; saldo_do_mês [11] = new int [30]; month_balance [12] = novo int [31];Mas não há vantagem em fazê-lo. Principais diferenças entre matriz unidimensional e bidimensional
Nota:A passagem de ambos, matriz unidimensional e matriz bidimensional para uma função é semelhante, isto é, ambas são passadas apenas pelo nome da matriz. // exemplo passing_funt (name_of_array);Conclusão:No array unidimensional e bidimensional, o índice desempenha um papel muito importante, pois é a única coisa que identifica especificamente um elemento no array. O array unidimensional e bidimensional pode ser inicializado no momento de sua declaração. |