Diferenças entre lista C # vs matriz

A classe C # List representa uma lista fortemente digitada de objetos que podem ser acessados ​​pelo índice e suporta o armazenamento de valores de um tipo específico sem conversão para ou de um objeto.

Lista, em que parâmetro T é o tipo de elementos na Lista. Alguns recursos da Lista são fornecidos abaixo:

Adicione valores inteiros na coleção List:

List intList = new List ();

intL) ist.Add (2);

intList.Add (3);

intList.Add (4);

Adicione valores de String na coleção List:

Listar cores = nova List ();

colors.add ("vermelho");

colors.add ("branco");

colors.add ("verde");

Recupere itens de uma coleção List usando o loop for:

foreach (cor da seqüência de cores) (

MessageBox.Show (cor)

)

Uma matriz armazena uma coleção seqüencial de tamanho fixo de elementos do mesmo tipo. É usado para armazenar uma coleção de dados, mas a matriz pode ser considerada como uma coleção de variáveis ​​do mesmo tipo armazenadas em locais de memória contíguos. Todas as matrizes consistem em locais de memória contíguos, com o endereço mais baixo corresponde ao primeiro elemento e o endereço mais alto ao último elemento.

Declare uma matriz em C #:

datatype () typeName; // DataType é usado para especificar o tipo de elementos na matriz

Inicializando uma matriz:

saldo double () = novo double (50);

Atribuindo valores a uma matriz:

saldo duplo () = (23, 0, 34, 56, 44, 32);

Acessando elementos da matriz;

Foreach (valor int em saldo) (

Console.WriteLine (“elemento é:” + valor);

)

Crie e inicialize uma matriz ao mesmo tempo:

Int () etapas = nova int (6) (1, 2, 3, 4, 5, 6);

Copie uma variável de matriz para outra variável de matriz de destino:

Int () count = etapas;

o destino e a fonte apontam para o mesmo local da memória

Comparação cara a cara entre lista de C # e infográficos de matriz

Abaixo estão as 8 principais diferenças entre lista C # e matriz

Principais diferenças entre lista C # e matriz

O desempenho da lista C # versus matriz são escolhas populares no mercado; vamos discutir algumas das principais diferenças entre lista C # e matriz:

  1. A lista é criada na parte superior da matriz, enquanto a matriz é uma estrutura de dados de nível inferior.
  2. Uma lista é enviada na forma de APIs em C # com um pai como classe Collection, enquanto Array é a estrutura de dados de nível inferior com suas próprias propriedades específicas.
  3. Uma lista não é baseada em índice, com base no conceito de nós, enquanto Matrizes são estruturas de dados baseadas em índice com o endereço mais baixo é fornecido ao primeiro elemento e o endereço mais alto é fornecido ao último elemento na matriz.
  4. As listas são dinâmicas por natureza, ou seja, seu tamanho aumenta automaticamente com mais inserção de elementos, enquanto Arrays são estruturas de tamanho fixo, uma vez inicializados não podem ser redefinidos.
  5. A lista é melhor para inserção e exclusão freqüentes, enquanto as matrizes são muito mais adequadas para o cenário frequente de acesso a elementos.
  6. A List ocupa muito mais memória, pois todos os nós definidos na Lista têm seu próprio conjunto de memórias, enquanto Arrays são estruturas de dados com eficiência de memória.
  7. Uma lista é derivada da coleção que contém um tipo de dados mais genérico, enquanto a matriz é fixa e armazena um tipo de dados mais forte.
  8. A lista contém nós que possuem locais de memória não precisam ser contíguos por natureza, enquanto Array contém os elementos com seus locais de memória que são contíguos por natureza.
  9. A propriedade não contígua de List leva mais tempo para acessar os elementos, enquanto a propriedade contígua de Array os torna altamente eficientes para acessar os elementos.
  10. Listando os genéricos de alavancagem, é basicamente uma versão do ArrayList com segurança de tipo e gera um erro em tempo de compilação, enquanto os Arrays com seu tipo de segurança, altamente eficiente em termos de velocidade e desempenho, suportam várias dimensões.

Comparação cara a cara entre C # List x Array

Abaixo está a comparação mais alta entre C # List vs Matriz

Base de comparação entre lista C # e matrizListaMatriz
CriaçãoConstruído na parte superior da matrizEstrutura de dados original, baseada no conceito de índice
MemóriaOcupam mais memória que ArrayMemória eficiente
comprimentoO comprimento variaComprimento de tamanho fixo
UsoInserção e exclusão freqüentesAcesso a elementos frequentes
RedimensionarRedimensionar lista é de natureza dinâmicaRedimensionar matrizes é caro
EstruturaMemória não contíguaLocalização contígua da memória
IndexaçãoEstrutura não baseada em índiceÍndice baseado no endereço mais baixo como primeiro e no endereço mais alto como último
AcessoO elemento de acesso é demorado, embora baseado na posição do elementoO elemento de acesso é uma operação de tempo constante, independentemente da localização do elemento

Conclusão - C # List vs Array

Tanto a lista C # quanto a matriz são tipos distintos, com recursos diferentes e armazenam seus dados de maneiras separadas. Esses recursos de armazenamento e design das estruturas de dados C # List vs Array os tornam únicos de suas próprias maneiras. Uma matriz é fixa em tamanho e, uma vez alocada, não é possível adicionar ou remover itens dela, todos os elementos também devem ser do mesmo tipo. Portanto, é o tipo de estrutura de dados linear mais segura e eficiente em termos de velocidade e desempenho. Além disso, a matriz suporta várias dimensões. A lista fornece recursos mais genéricos e derivados das APIs de coleção. Ao contrário do Array, eles são dinâmicos por natureza, podem ser redimensionados automaticamente com a inserção e exclusão freqüentes de elementos. É essencialmente uma versão com segurança de tipo de uma estrutura de dados ArrayList. O recurso de segurança de tipo significa que não há boxe ou unboxing que melhorariam o desempenho e, se alguém tentar adicionar um elemento do tipo errado, isso gerará um erro em tempo de compilação.

O desempenho da lista C # vs matriz é uma estrutura de dados linear adequada para diferentes cenários. Se ocorrerem inserções e exclusões freqüentes e, ao mesmo tempo, a memória não for uma restrição, a Lista será a escolha ideal. Em cenários como acesso frequente a elementos necessários com uma restrição de memória, a Matriz é uma opção melhor. Tudo depende do caso de uso e dos requisitos. Uma matriz é sempre uma lista na natureza, mas uma lista não é uma matriz. A matriz permite os dois tipos de acesso, direto e seqüencial, enquanto a Lista permite apenas o acesso sequencial. E isso ocorre porque a maneira como essas estruturas de dados são armazenadas na memória. Como a List é derivada da Collection, ela pode implementar diferentes implementações, uma delas é ArrayList, que é uma classe que implementa o comportamento da List usando matrizes como uma estrutura de dados. Uma matriz está muito ligada à noção de hardware de memória contínua e contígua, com cada elemento idêntico em tamanho. As idéias de desempenho da lista C # versus matriz são alinhadas muito bem, com base em cenários. No final do dia, tudo se resume ao requisito, embora a parte da memória possa estar em segurança no mundo de hoje, já que a alta memória se tornou uma norma.

Artigo recomendado

Este foi um guia para as principais diferenças entre C # List e Array. Aqui também discutimos as principais diferenças entre lista C # e matriz com infográficos e tabela de comparação. Você também pode dar uma olhada nos seguintes artigos -

  1. Listas de matrizes vs lista Java - diferenças valiosas
  2. Guia surpreendente em C vs Java
  3. ArrayList e vetor Java
  4. C # vs Js - Diferenças impressionantes
  5. C # Array vs List: Diferenças
  6. Exigir vs importar: deseja conhecer os benefícios
  7. C vs C #: Quais são as melhores diferenças
  8. C # vs JavaScript: Quais são os recursos