LinkedHashSet Clase

Definición

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 Objectobjeto .

(Heredado de Object)
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 Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
JniPeerMembers

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

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 HashSet instancia: los propios elementos no se clonan.

(Heredado de HashSet)
Construct(JniObjectReference, JniObjectReferenceOptions)

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
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 Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
Equals(Object)

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
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 Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
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>Spliterator sobre los elementos de este conjunto.

(Heredado de HashSet)
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 Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

(Heredado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

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 Set interfaz, con orden de encuentro bien definido.

ToEnumerable(IIterable)

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

ToEnumerable<T>(IIterable)

Tabla hash y implementación de lista vinculada de la Set interfaz, con orden de encuentro bien definido.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a