¿Diccionario o matriz?

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 la matriz anterior será descartada! Y la duración del grupo es variable.

2. La matriz espera declarar el tipo de elementos, 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, ¡pero 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 elementos a la matriz.

2: remove() elimina elementos 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 el array.

//Lista

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

Al decidir si usar 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 este tipo de valor. Esto significa que los elementos Lista del objeto de lista se pueden usar sin encajonar y se están creando alrededor de 500 listas.

elemento, la memoria ahorrada al no encuadrar los elementos de la lista será mayor que la memoria utilizada para generar dicha implementación.

//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. Será más rápido que otras colecciones si accede a sus elementos utilizando cualquier tipo de valor clave.

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 ese 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 Enqueue ingresa a la cola y el método Dequeue sale de la cola.

-

//Diccionario

Sistema. colecciones. entrada de diccionario DIC = nuevo sistema. colecciones .dictionary Entry("key 1","value 1");

Diccionario<int,string>fruit=new diccionario<int,string>();

//Agregar una clave duplicada arrojará un excepción.

Fruta. add(1,"manzana");

Fruta. add(2,"naranja");

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

Fruta. add(4, "pineapple");

//Debido a que se introducen genéricos, no es necesario convertir claves de Object a int, y lo mismo ocurre con las colecciones de valores.

foreach(int I. key) en fruta

{

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

}

//Eliminar la clave y el valor especificados

Frutas. Delete(1);

//Determina si la clave especificada está incluida.

if (resultado. contiene clave(1))

{

Consola. WriteLine("Contiene esta clave");

}

//Borrar todos los objetos de la colección

Frutas. clear();

}

//Lista de matrices

System. recolectar. 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<String>names = nueva Lista<String>();

Nombres. Agregar("Qiao Feng");

Nombre. Agregar("Ouyang Feng");

Nombre. add("wasp");

//Recorre la lista

foreach (nombre de cadena en nombre)

{

Torre de control . WriteLine(nombre);

}

//Insertar elemento en la lista

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

//Eliminar el elemento especificado.

Nombre. clear("WASP");

//hashtable

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

Tabla. add("tabla 1", 1);

Tabla. Agregar("Tabla 2", 2);

System. colecciones .IDictionaryEnumerator d = tabla. get enumerador();

mientras(d. MoveNext())

{

System. console . WriteLine (d . entrada . clave

}

//Queue

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

Cola. En cola(1);

Cola. En cola(2);

System. consola. Línea de escritura (cola.

peek());

mientras(queue.count>0)

{

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

}

//SortedList

System. Colecciones Lista SortedList = nuevo sistema. colecciones.lista ordenada();

Lista. add("clave 2", 2);

Lista. add("clave 1", 1);

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

{

Sistema. consola .WriteLine(list.GetKey(I);

}

//Pila

System.Collections.Stack pila = new System.collections.Stack(

Stack.Push(1);

Stack.Push(2);

System.Peek());

mientras(stack.count>0)

{

System.WriteLine(stack.pop());

}