Interfaz de mapa y clase de implementación en Java

¡Acostúmbrate a escribir juntos! Este es el día 17 de mi participación en el "Nuevo plan diario de Nuggets · Desafío de actualización de abril", haga clic para ver los detalles del evento .

Interfaz de mapa y clase de implementación en Java

Requerido: Dominar las características de la interfaz Map y sus clases de implementación y el uso de métodos relacionados.

Las principales funciones de la colección Map:

1: Agregar características

       V put (tecla K, valor V): agregar elemento.

              Si la clave se almacena por primera vez, almacene el elemento directamente y devuelva nulo

       Si la clave no se almacena por primera vez, reemplace el valor anterior con el valor y devuelva el valor anterior

2: función de eliminación

        void clear(): elimina todos los elementos del par clave-valor

       V eliminar (clave de objeto): elimine el elemento del par clave-valor de acuerdo con la clave y devuelva el valor

3: función de juicio

       boolean containsKey (clave de objeto): determina si la colección contiene la clave especificada

       booleano contiene valor (valor del objeto): determina si la colección contiene el valor especificado

       boolean isEmpty(): determina si la colección está vacía

4: Obtener función

       Establecer<Mapa.Entrada<K,V>> conjuntoentrada():???

       V get (clave de objeto): obtiene el valor de acuerdo con la clave

       Set<K> keySet(): Obtenga el conjunto de todas las claves en el conjunto

       Collection<V> valores(): Obtiene una colección de todos los valores de la colección

5: función de longitud

       int size(): Devuelve el logaritmo de pares clave-valor en la colección

La forma de recorrer los elementos de la colección Map:

Ideas:

(1):

       R: Obtener todas las llaves

       B: Atraviesa el juego de llaves y obtén cada llave

       C: encuentra el valor según la clave

(2):

       R: Obtenga una colección de todos los objetos de par clave-valor

       B: recorrer la colección de objetos de par clave-valor para obtener cada objeto de par clave-valor

       C: Obtenga la clave y el valor del objeto de par clave-valor

Colección HashMap:

HashMap: es la implementación de la interfaz Map basada en la tabla hash.

El papel de la tabla hash es garantizar la unicidad de las claves.

HashMap<String,String>:键:String 值:String

Observe la adición de objetos duplicados de clave-valor: cobertura

La colección HashMap almacena objetos personalizados y garantiza la singularidad de los elementos:

HashMap<c1,String>: clave: c1 valor: Cadena

       Requisito: dos objetos son el mismo objeto si los valores de sus variables miembro son iguales.

Anular equals() y hashCode()

Colección TreeMap:

TreeMap: es una implementación de la interfaz Map basada en árboles rojo-negro.

HashMap<String,String>:键:String 值:String

Clasificación natural:

       La interfaz comparable proporciona solo un método: compareTo(Object obj), el valor de retorno de este método es int. Si el valor devuelto es un número positivo, significa que el objeto actual (el objeto que llama a este método) es "más grande" que el objeto obj; de lo contrario, es "más pequeño"; si es cero, significa que los dos objetos son iguales.

       Al usar el método de clasificación natural TreeSet, debe implementar la interfaz Comparable, anotar el tipo genérico como la clase de objeto actual y luego anular el método compareTo().

       Cómo usar el método compareTo:

@override

public int compareTo(类名 形参){

    return 形参.返回int类型的方法 - this.与前面相同的方法;

    //从大到小排序。若从小到大只需交换减数与被减数

}
复制代码

Clasificación del comparador:

       Importante: Al usar el método de clasificación del comparador TreeSet, no necesita implementar la interfaz Comparable, solo use la clase interna anónima para anular el método compareTo al crear un nuevo TreeSet. Este método se puede usar cuando la clase de objeto es una clase interna de Java u otras clases que no tienen permiso para modificar. El efecto es el mismo que la clasificación natural. Al anular el método compareTo, preste atención al orden en que se restan las propiedades de los dos parámetros.

   c1 = new TreeSet (new Comparator(){
        //使用匿名内部类
        @Override
        public int compare(c1 o1, c1 o2) {
            return o1.get() - o2.get();
        }
    });

复制代码

Supongo que te gusta

Origin juejin.im/post/7087407778343419918
Recomendado
Clasificación