Cómo asignar valor para establecer en Java
Interfaz de configuración
No existe un orden obvio para varios objetos en la colección. Los conjuntos son básicamente lo mismo que los conjuntos, no.
Proporciona métodos adicionales, simplemente diferentes del comportamiento de la colección.
No se permite que las colecciones contengan elementos idénticos, si se agregan dos elementos idénticos devolverá falso.
Según el método igual, el operador == no está disponible para colecciones.
Clase Hash Set
La clase HashSet es una implementación típica de la interfaz Set. En la mayoría de los casos, la colección Set se utiliza con esta clase.
HashSet almacena los elementos del conjunto según el algoritmo hash.
Funciones del conjunto de hash:
1. El orden de los elementos no está garantizado y el orden puede cambiar.
2.HashSet no está sincronizado. Varios subprocesos acceden a una colección Set al mismo tiempo, por lo que se debe utilizar código.
Asegurar la sincronización
3. El valor del elemento establecido puede estar vacío.
Cuando un elemento se almacena en una colección HashSet, el HashSet llama al HashCode() del objeto.
Obtenga el HashCode del objeto y determine la ubicación del objeto en el HashSet en función del hashCode.
Si la comparación del método igual de dos elementos devuelve verdadero pero el valor de retorno del método hashCode() es diferente,
HashSet almacenará los dos elementos en ubicaciones diferentes.
HashSet requiere igual y hashCode para determinar si dos elementos son iguales.
Por lo tanto, anular el método equals y el método hashCode() de la clase debería garantizar que ambos objetos pasen a través de iguales.
HashCode también es igual cuando se devuelve verdadero.
Los algoritmos hash garantizan que un objeto pueda encontrar rápidamente otro objeto. Se puede ejecutar rápidamente cuando sea necesario.
Al buscar un elemento en una colección, un algoritmo hash puede encontrar directamente el elemento en función de su valor.
Para que el programa pueda encontrar rápidamente el elemento.
Busque el elemento en la matriz a través del índice del elemento de la matriz y encuentre el HashSet a través del índice del código hash.
Pasos básicos para anular el método hashCode()
Cuando dos objetos devuelven verdadero a través del método igual, el hashCode de los dos objetos es igual.
Las propiedades utilizadas como criterios de comparación iguales en objetos deben usarse para calcular el código hash.
Al agregar un objeto mutable a un HashSet, si modifica el objeto en la colección HashSet, puede hacer que el objeto sea igual a otros objetos en la colección, lo que hace que HashSet no pueda acceder al objeto. correctamente.
HashSet tiene una subclase de Linked Hashset, una colección de LinkedHashSet y LinkedHashSet se determina en función de HashCode.
La ubicación de almacenamiento de los elementos, mientras se usa una lista vinculada para mantener el orden de los elementos para que se vean como
El orden de inserción se guarda, por lo que la colección será Se accede en orden de inserción.
Linked necesita mantener el orden de inserción de los elementos, su rendimiento es ligeramente inferior al de HashSet, pero tiene mejor rendimiento en la iteración.
TreeSet es la única implementación de la interfaz SortedSet.
TreeSet garantiza que los elementos estén ordenados. También se proporcionan varios otros métodos:
1. Comparador
Comparador(): Devuelve el comparador utilizado por la colección actual, o nulo, lo que significa.
Clasificar de forma natural
2. Objeto primero(): Devuelve el primer elemento de la colección.
3.Object last(): Devuelve el último elemento de la colección.
4. Parte inferior del objeto (objeto
e): Devuelve el elemento anterior al elemento especificado en la colección.
5. Objeto superior (objeto
e): Devuelve el elemento después del elemento de fórmula en la colección.
6. Conjunto de clasificación
Subconjunto (de elemento, aElemento): Devuelve un subconjunto del conjunto, que va desde hasta.
7.7.conjunto clasificado headSet(toElement) devuelve un subconjunto del conjunto que es más pequeño que un elemento.
8. Conjunto de clasificación
TailSet (fromElement) devuelve un subconjunto de Set, que consta de elementos mayores o iguales que from element.
TreeSet se ordena por valor de elemento, no por orden de inserción.
TreeSet utiliza la estructura de datos de árbol rojo-negro para ordenar elementos: admite clasificación natural (predeterminada) y clasificación personalizada.
Clasificación natural:
TreeSet llama al método compareTo de elementos de la colección para comparar la relación de tamaño entre elementos.
Luego recoge los elementos en orden ascendente.
Java proporciona una interfaz similar que define el método de comparación con (Objeto obj).
Este método devuelve un valor entero. La clase que implementa la interfaz debe implementar este método y el objeto de la clase que implementa la interfaz.
Puedes comparar tallas. Obj1. comp Pareto (obj 2), si este método devuelve 0, significa que los dos objetos son iguales. Si
devuelve un número entero positivo, significa que obj1 es mayor que obj2. Si devuelve un número entero negativo, significa que obj1 es menor que obj2.
Si desea agregar un objeto como TreeSet, el objeto debe implementar la interfaz Comparable.
Cuando desee agregar un objeto al conjunto de árbol, primero usará compareTo para comparar el objeto que desea agregar con el objeto en el conjunto de árbol.
Si no se encuentra compareTo, se generará una excepción ClassCastException.
Debido a que solo los objetos del mismo tipo se pueden comparar en tamaño, se deben agregar objetos del mismo tipo al TreeSet.
Si los objetos de las colecciones TreeSet y HashSet son objetos mutables, el procesamiento de la colección se producirá cuando cambien las propiedades del objeto.
Este objeto es complejo y propenso a errores. Entonces deberías intentar agregar objetos inmutables a la colección.
Los objetos inmutables son
1. La propiedad es una propiedad final privada.
2. Incluir un constructor con parámetros para inicializar el objeto.
3. Este atributo tiene un método get, pero no un método set.
Clasificación personalizada:
La clasificación natural de TreeSet se basa en el tamaño de los elementos de la colección, y TreeSet organiza los elementos en orden ascendente. Utilice una clasificación
personalizada (como el orden descendente) con la ayuda de la interfaz del comparador. La interfaz contiene una comparación int (T o1, T o2).
Se utiliza para comparar los tamaños de o1 y o2: anular este método puede cambiar la clasificación.