Colección HashTable

HashTable es otra clase de implementación de Map. Esta clase implementa una tabla hash que asigna claves a los valores correspondientes. Cualquier objeto no nulo se puede utilizar como clave o valor. Es decir, no se permite almacenar objetos nulos (se permiten otras colecciones) .

La versión JDK1.0 existe y es el primer conjunto de dos columnas. La seguridad del hilo es sincrónica (hilo único, velocidad lenta).

HashTable: la capa inferior es una tabla hash, una colección segura para subprocesos, una colección de un solo subproceso y velocidad lenta.

HashMap: la capa inferior es una tabla hash, que es una colección de subprocesos inseguros y una colección de subprocesos múltiples, que es rápida.

Colección HashMap (y todas las colecciones aprendidas antes): puede almacenar valores / claves nulos.

La colección HashTable, como la colección Vector, ha sido reemplazada por colecciones más avanzadas después de la versión JDK1.2. Es decir, HashMap y ArrayList, porque el subproceso múltiple es rápido.

Nota: Las propiedades, una subclase de HashTable, todavía se utilizan activamente.

La colección de propiedades es una colección única combinada con flujos de E / S.

Por ejemplo, la diferencia entre los dos:

public static void main (String [] args) { 
    HashMap <String, String> hashMap = new HashMap <> (); 
    // HashMap permite valores nulos y claves nulas 
    hashMap.put (null, "a"); 
    hashMap. put ("b", null); 
    hashMap.put (null, null); // Tenga en cuenta que la clave está duplicada y el valor reemplaza 
    System.out.println (hashMap); // {null = null, b = null } 

    Hashtable <String, String> hashtable = new Hashtable <> (); 
    // No está permitido almacenar claves vacías y se informa NullPointerException. 
    // hashtable.put (null, "a"); 
    System.out.println ( tabla hash); 
}

Ejemplo: cuente el número de ocurrencias de caracteres en una cadena

Código:

public static void main (String [] args) { 
    Scanner sc = new Scanner (System.in); 
    // Escriba la cadena 
    System.out.println ("Ingrese una cadena de caracteres:"); 
    String str = sc.next (); 
    // 
    Convertir a matriz de caracteres char [] charList = str.toCharArray (); 
    // Crear colección 
    HashMap HashMap <Character, Integer> hashMap = new HashMap <> (); 
    // Recorrer 
    para (char c: charList) { 
        if (hashMap.get (c)! = null) {// 
            hashMap.put (c, hashMap.get (c) + 1); 
        } 
        else {// primero guardar en 
            hashMap.put (c, 1); 
        } 
    } 
    // Recorrer HashMap, dos métodos, uno: convertir la clave en un conjunto y luego recorrer el conjunto  
    // Segundo, sacar el objeto de entrada, atravesar el objeto de entrada
    // Ambos se implementan aquí para profundizar la impresión del código
    Set <Character> keySet = hashMap.keySet (); 
    for (char c: keySet) {// Unboxing automático 
        System.out.println ("Character" + c + "El número de ocurrencias es:" + hashMap.get (c )); 
    } 
    System.out.println ("--------------"); 
    // Dos métodos de recorrido diferentes de HashMap, los lectores pueden elegir uno de ellos 
    Set <Map.Entry <Character, Integer >> entryMap = hashMap.entrySet (); 
    Iterator <Map.Entry <Character, Integer >> iterator = entryMap.iterator (); 
    while (iterator.hasNext ()) { 
        Map.Entry <Character, Integer> entry = iterator .next (); 
        System.out.println ("Carácter" + entry.getKey () + "El número de apariciones es:" + entry.getValue ()); 
    } 
}

Ejecutar captura de pantalla:

Supongo que te gusta

Origin blog.csdn.net/wardo_l/article/details/114044258
Recomendado
Clasificación