LinkedHashSet Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.
[Android.Runtime.Register("java/util/LinkedHashSet", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class LinkedHashSet : Java.Util.HashSet, IDisposable, Java.Util.ISequencedSet
[<Android.Runtime.Register("java/util/LinkedHashSet", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type LinkedHashSet = class
inherit HashSet
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface ISequencedSet
interface ISequencedCollection
interface ICollection
interface IIterable
interface ISet
- Herencia
- Atributos
- Implementaciones
Comentarios
Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido. Esta implementación difiere de HashSet en que mantiene una lista doblemente vinculada que se ejecuta a través de todas sus entradas. Esta lista vinculada define el orden de encuentro (orden de iteración), que es el orden en el que se insertaron los elementos en el conjunto (orden de inserción). El elemento insertado menos recientemente (el más reciente) es primero y el elemento más joven es el último. Tenga en cuenta que el orden de encuentro no se ve afectado si se vuelve a insertar un elemento en el conjunto con el add método . (Se reinserte un elemento e en un conjunto s si s.add(e) se invoca cuando s.contains(e) se devuelve true inmediatamente antes de la invocación). La vista ordenada inverso de este conjunto está en el orden opuesto, con el elemento más joven que aparece primero y el elemento más largo que aparece en último lugar. El orden de encuentro de los elementos ya en el conjunto se puede cambiar mediante los #addFirst addFirst métodos y #addLast addLast .
Esta implementación ahorra a sus clientes del orden no especificado, generalmente caótico proporcionado por HashSet, sin incurrir en el aumento del costo asociado a TreeSet. Se puede usar para generar una copia de un conjunto que tenga el mismo orden que el original, independientemente de la implementación del conjunto original:
{@code
void foo(Set<String> s) {
Set<String> copy = new LinkedHashSet<>(s);
...
}
}
Esta técnica es especialmente útil si un módulo toma un conjunto en la entrada, lo copia y después devuelve resultados cuyo orden viene determinado por el de la copia. (Los clientes generalmente aprecian tener cosas devueltas en el mismo orden en que se presentaron).
Esta clase proporciona todas las operaciones y Set opcionalesSequencedSet, y permite elementos NULL. Al igual HashSetque , proporciona un rendimiento en tiempo constante para las operaciones básicas (addy containsremove), suponiendo que la función hash disperse los elementos correctamente entre los cubos. Es probable que el rendimiento sea ligeramente inferior al de HashSet, debido a los gastos agregados de mantenimiento de la lista vinculada, con una excepción: La iteración a lo largo de un LinkedHashSet período de tiempo es proporcional al tamaño del conjunto, independientemente de su capacidad. Es probable que la iteración sobre una HashSet sea más costosa, lo que requiere tiempo proporcional a su capacidad.
Un conjunto de hash vinculado tiene dos parámetros que afectan a su rendimiento: capacidad inicial y factor de carga. Se definen exactamente como para HashSet. Sin embargo, tenga en cuenta que la penalización por elegir un valor excesivamente alto para la capacidad inicial es menos grave para esta clase que para HashSet, ya que los tiempos de iteración de esta clase no se ven afectados por la capacidad.
<fuerte>Tenga en cuenta que esta implementación no está sincronizada.</strong> Si varios subprocesos acceden simultáneamente a un conjunto hash vinculado y al menos uno de los subprocesos modifica el conjunto, debe<></em> sincronizarse externamente. Esto se logra normalmente mediante la sincronización en algún objeto que encapsula naturalmente el conjunto.
Si no existe este objeto, el conjunto debe "encapsularse" mediante el Collections#synchronizedSet Collections.synchronizedSet método . Esto se hace mejor en el momento de la creación, para evitar el acceso no sincronizado accidental al conjunto:
Set s = Collections.synchronizedSet(new LinkedHashSet(...));
Los iteradores devueltos por el método de iterator esta clase son <em>fail-fast</em>: si el conjunto se modifica en cualquier momento después de crear el iterador, excepto a través del método propio remove del iterador, el iterador iniciará un ConcurrentModificationException. Por lo tanto, en el caso de la modificación simultánea, el iterador produce un error rápido y limpio, en lugar de arriesgarse a un comportamiento arbitrario y no determinista en un momento indeterminado en el futuro.
Tenga en cuenta que no se puede garantizar el comportamiento rápido de un iterador, ya que es, por lo general, imposible hacer ninguna garantía dura en presencia de modificaciones simultáneas no asincrónicas. Los iteradores rápidos de error inician ConcurrentModificationException el mejor esfuerzo. Por lo tanto, sería incorrecto escribir un programa que dependiera de esta excepción por su corrección: el comportamiento rápido del error de los iteradores solo se debe usar para detectar errores.
Esta clase es miembro del marco de colecciones de Java.
Agregado en la versión 1.4.
Java documentación para java.util.LinkedHashSet.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Constructores
| Nombre | Description |
|---|---|
| LinkedHashSet() |
Construye un nuevo conjunto de hash vinculado vacío con la capacidad inicial predeterminada (16) y el factor de carga (0). |
| LinkedHashSet(ICollection) |
Construye un nuevo conjunto hash vinculado con los mismos elementos que la colección especificada. |
| LinkedHashSet(Int32, Single) |
Construye un nuevo conjunto de hash vinculado vacío con la capacidad inicial y el factor de carga especificados. |
| LinkedHashSet(Int32) |
Construye un nuevo conjunto de hash vinculado vacío con la capacidad inicial especificada y el factor de carga predeterminado (0). |
| LinkedHashSet(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| First |
Por agregar |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| IsEmpty |
Por agregar (Heredado de AbstractCollection) |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Tabla hash y implementación de lista vinculada de la |
| JniPeerMembers |
Tabla hash y implementación de lista vinculada de la |
| Last |
Por agregar |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Métodos
| Nombre | Description |
|---|---|
| Add(Object) |
Por agregar (Heredado de AbstractCollection) |
| AddAll(ICollection) |
Por agregar (Heredado de AbstractCollection) |
| AddFirst(Object) |
Por agregar |
| AddLast(Object) |
Por agregar |
| Clear() |
Por agregar (Heredado de AbstractCollection) |
| Clone() |
Devuelve una copia superficial de esta |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Tabla hash y implementación de lista vinculada de la |
| Contains(Object) |
Por agregar (Heredado de AbstractCollection) |
| ContainsAll(ICollection) |
Por agregar (Heredado de AbstractCollection) |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Tabla hash y implementación de lista vinculada de la |
| Equals(Object) |
Tabla hash y implementación de lista vinculada de la |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
| Iterator() |
Devuelve un iterador sobre los elementos de este conjunto. (Heredado de HashSet) |
| JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
| NewLinkedHashSet(Int32) |
Crea un linkedHashSet nuevo y vacío adecuado para el número esperado de elementos. |
| Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
| NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
| Remove(Object) |
Por agregar (Heredado de AbstractCollection) |
| RemoveAll(ICollection) |
Por agregar (Heredado de AbstractCollection) |
| RemoveFirst() |
Por agregar |
| RemoveLast() |
Por agregar |
| RetainAll(ICollection) |
Por agregar (Heredado de AbstractCollection) |
| Reversed() |
Por agregar |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Tabla hash y implementación de lista vinculada de la |
| Size() |
Devuelve el número de elementos de este conjunto (su cardinalidad). (Heredado de HashSet) |
| Spliterator() |
Crea un <em>late-binding</em> y <em>fail-fast</em> |
| ToArray() |
Por agregar (Heredado de AbstractCollection) |
| ToArray(Object[]) |
Por agregar (Heredado de AbstractCollection) |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| Wait() |
Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> (Heredado de Object) |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Tabla hash y implementación de lista vinculada de la |
| IJavaPeerable.Finalized() |
Tabla hash y implementación de lista vinculada de la |
| IJavaPeerable.JniObjectReferenceControlBlock |
Tabla hash y implementación de lista vinculada de la |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Tabla hash y implementación de lista vinculada de la |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Tabla hash y implementación de lista vinculada de la |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Tabla hash y implementación de lista vinculada de la |
| IJavaPeerable.UnregisterFromRuntime() |
Tabla hash y implementación de lista vinculada de la |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Tabla hash y implementación de lista vinculada de la |
| ToEnumerable(IIterable) |
Tabla hash y implementación de lista vinculada de la |
| ToEnumerable<T>(IIterable) |
Tabla hash y implementación de lista vinculada de la |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |