uso detallado de la función Java HashSet, mecanismos de almacenamiento y análisis de rendimiento

HashSet mecanismo de almacenamiento:

  • Con una longitud de la matriz de elemento de almacenamiento subyacente, y la matriz es siempre la n-ésima potencia de 2, si la longitud de entrada de la matriz no es n-ésima potencia de 2, HashSet ésta se extenderá automáticamente a la n-ésima potencia de 2;
  • HashSet constructor:
HashSet(int initialCapacity, float loadFactor)
//initialCapacity——控制底层数组长度
//loadFactor——当HashSet感觉到底层快要满的时候(0.75),会将底层数组容量扩充1倍,
//原来的数组就变成垃圾,等待回收,即rehash(重hash)
//说明:当LoadFactor为0.75时,75%的桶已满,HashSet会分配新的数组;LoadFactor越小,
//越消耗内存;LoadFactor越大,性能越低
//数组越满,才回去“重hash”,越有可能出现链表
  • HashSet en el mecanismo:
  1. Cuando todos los elementos se añaden a la mezcla, el objeto es método invocado HashSet HashCode (), para obtener un valor int;
  2. El valor int devuelto HashCode (), que se calcula en la matriz HashSet inferior [] de ubicaciones de almacenamiento (matriz indexada);
  3. Si no hay ningún elemento que se añade es una posición (está vacío), directamente en la lata;
  4. Si desea agregar la posición del elemento que ha sido, en la que se formará una "cadena"
  • HashSet tomar elementos de mecanismos:
  1. Cuando queremos tomar un elemento, el objeto es método invocado HashSet HashCode (), para obtener un valor int;
  2. El valor int devuelto HashCode (), que calcula la posición de almacenamiento (el índice de la matriz) a una HashSet;
  3. Si la ubicación elemento está buscando exactamente se puede tomar directamente;
  4. Si el lugar tiene una lista, HashSet a "uno por uno" en los elementos de la lista de búsqueda

Descripción: En el mejor de los casos, el rendimiento es casi HashSet partido matriz, a depositar, retirar un rendimiento muy alto

  • HashSet dos objetos se consideran iguales condiciones:
  1. HashCode dos objetos () es igual al valor de retorno;
  2. Compare los dos objetos también son devueltos por igual a true
Publicados 111 artículos originales · ganado elogios 57 · Vistas a 60000 +

Supongo que te gusta

Origin blog.csdn.net/qq_38358499/article/details/100631653
Recomendado
Clasificación