Colección de citas famosas - Slogan de motivación - ¿Cuáles son las diferencias entre Lista, Diccionario, ArrayList, Hashtable y matriz en C#?

¿Cuáles son las diferencias entre Lista, Diccionario, ArrayList, Hashtable y matriz en C#?

Clase de colección C# ArrayArrayListHashtable diccionario StackQueue

1. El tamaño de la matriz es fijo y no se puede escalar. Aunque el sistema de método general. Array.Resize puede restablecer el tamaño de la matriz.

Sin embargo, este método recrea la matriz con el tamaño recién establecido y la inicializa con los elementos de la matriz anterior. ¡Entonces se abandonará la formación anterior! Y la duración del grupo es variable.

2. La matriz quiere declarar el tipo de elemento, pero el tipo de elemento de la clase de colección es objeto.

3. Las matrices se pueden leer y escribir, pero no se pueden declarar matrices de solo lectura. Las clases de colección pueden proporcionar métodos de solo lectura para usar la colección de manera de solo lectura.

4. Los arrays deben tener subíndices enteros para acceder a elementos específicos, pero muchas veces dichos subíndices no son muy útiles. Las colecciones también son listas de datos, pero no se accede a ellas mediante subíndices.

Muchas veces las colecciones tienen tipos de subíndices personalizados y las colas y pilas no admiten el acceso a subíndices en absoluto.

//Array

int[]int array 1;

//Inicializa la matriz unidimensional declarada.

int matriz 1 = nuevo int[3];

int matriz 1 = nuevo int[3]{ 1, 2, 3 }; 1 = new int[]{ 1, 2, 3 };

//El objeto de clase ArrayList está diseñado como un tipo de matriz dinámica y su capacidad se ampliará adecuadamente según sea necesario.

Método

1: add() agrega un elemento a la matriz.

2: remove() elimina un elemento del array.

3: remove at (int I) elimina el elemento con valor de índice I en la matriz.

4: reverse() invierte los elementos del array.

5: sort() organiza los elementos de la matriz de pequeño a grande.

6: clone() copia una matriz.

//Lista

Una lista de objetos fuertemente tipados accesibles a través de un índice. Proporciona métodos para buscar, ordenar y manipular listas.

Al decidir si utilizar las clases List o ArrayList (ambas tienen una funcionalidad similar), recuerde que la clase List funciona mejor en la mayoría de los casos y es de tipo seguro. Si utiliza un tipo de referencia para el tipo t de la clase Lista, entonces las dos clases se comportan exactamente igual. Sin embargo, si utiliza un tipo de valor para el tipo T, debe considerar cuestiones de implementación y empaquetado.

Si se utiliza un tipo de valor para el tipo t, el compilador generará una implementación de la clase List específicamente para ese tipo de valor. Esto significa que los elementos Lista del objeto de lista se pueden usar sin encuadres y se están creando alrededor de 500 listas.

elemento, la memoria guardada al unboxing de los elementos de la lista será mayor que la memoria utilizada para generar la implementación de esta clase.

//Diccionario

Representa una colección de claves y valores. El orden en el que Dictionary recorre la salida es el orden en que se agregó, a diferencia de Hashtable.

//Clase SortedList

Similar a una tabla hash, excepto que la matriz de claves en SortedList está ordenada.

//Clase de tabla hash

Tabla hash, pares nombre-valor. Similar a un diccionario (más poderoso que una matriz). Las tablas hash están optimizadas para que los objetos a los que se accede mediante subíndices se apliquen primero. Si accede a sus elementos utilizando cualquier tipo de valor clave, será más rápido que otras colecciones.

El método GetHashCode() devuelve datos de tipo int y el valor de esta clave se utiliza para generar datos de tipo int.

La tabla hash toma este valor y finalmente devuelve un índice que indica en qué parte del diccionario se almacena el elemento de datos con el hash dado.

//Clase de pila

Pila, último en entrar, primero en salir. El método push ingresa a la pila y el método pop sale de la pila.

Categoría de cola

Cola, primero en entrar, primero en salir. El método de cola ingresa a la cola y el método de cola sale de la cola.

-

//Diccionario

Sistema. colecciones. entrada de diccionario DIC = nuevo sistema. colecciones. entrada de diccionario("clave 1","valor 1");

Diccionario ltint, cadena gt fruta = nuevo diccionario ltint, cadena gt();

//Agregar duplicados La clave generará una excepción.

Fruta. add(1,"manzana");

Fruta. add(2,"naranja");

Fruta. add(3,"plátano");

Fruta. Add(4, "Pineapple");

//Debido a la introducción de genéricos, no es necesario convertir la clave de Object a int, y lo mismo ocurre con la colección de valores.

foreach (int i en fruit. key)

{

Consola. WriteLine ("la clave es: {0} el valor es: {1} ", I, fruta

}

//Eliminar la clave y el valor especificados

<); p>Frutas. Delete(1);

//Determina si la clave especificada está incluida.

if (resultado.ContainsKey(1))

{

Consola. WriteLine("Contiene esta clave");

}

//Borrar todos los objetos de la colección

Fruit. clear();

}

//ArrayList

System. listaarray = nuevo sistema. colecciones . ArrayList();

Lista. Añadir(1);

Lista. add(2);

for(int I = 0; i lt list. count; i )

{

System. console . WriteLine(list[I]);

}

//List

//Declara un objeto de lista y solo agrega parámetros de cadena.

Lista lt string gtnames = nueva lista lt string gt();

Nombres. Agregar("Qiao Feng");

Nombre. Agregar("Ouyang Feng");

Nombre. add("Avispa");

//Recorrer la lista

foreach(nombre de cadena en nombre)

{

Control torre. WriteLine(nombre);

}

//Insertar elemento en la lista

Nombre. Insertar (2, "Zhang Sanfeng");

//Eliminar el elemento especificado.

Nombre. remove("WASP");

//hashtable

system. Colecciones. Tabla Hashtable = nuevo sistema. colecciones.Hashtable();

Tabla. Agregar("tabla1",1);

Tabla. add("Tabla2", 2);

System. colecciones .IDictionaryEnumerator d = tabla.

get enumerador();

while(d.MoveNext())

{

System. console . WriteLine(d . entrada . clave);

}

//Queue

System. Colecciones . Cola de cola = nuevo sistema. colecciones. Cola();

Cola. En cola(1);

Cola. En cola(2);

System. Console.WriteLine(queue.peek());

while(queue.Count gt0)

{

System. Console.WriteLine(queue.dequeue());

}

//SortedList

System. colecciones lista lista ordenada = nuevo sistema. colecciones . lista ordenada();

Lista. Agregar("clave2 ",2);

Lista. Add("key1", 1);

for(int I = 0; i lt list. count; i)

{

System. Console.WriteLine(List.GetKey(I));

}

//Apilar

System. Colecciones pila pila = nuevo sistema. colecciones .Stack();

Pila. push(1);

Pila. Push(2);

Sistema. Console.WriteLine(stack.peek());

while(stack.Count gt0)

{

System. Console.WriteLine(stack.pop());

}