L'API per gli stati di interfaccia Java Set:Esiste un'implementazione di base di Java Set che non consente valori nulli?
Per esempio, alcune implementazioni vietare
null
elementi e alcuni hanno restrizioni sui tipi di loro elementi
Cerco un'implementazione di base Set che non richiede l'ordinazione (come ArrayList fornisce l'interfaccia List) e ciò non consente null
. TreeSet, HashSet e LinkedHashSet consentono tutti elementi null. Inoltre, TreeSet ha il requisito che gli elementi implementino Comparable.
Sembra che al momento non esista uno standard di base Set
. Qualcuno sa perché? O se esiste uno dove posso trovarlo?
[Modifica]: Non voglio consentire null
s, perché più avanti nel codice la mia classe eseguirà un'iterazione su tutti gli elementi nella raccolta e chiamerà un metodo specifico. (In realtà sto usando HashSet<MyRandomObject
>). Preferirei fallire più rapidamente che fallire successivamente o incidentalmente incorrere in qualche comportamento bizzarro a causa di un null
nel set.
tutti i set praticamente necessario attuare una sorta di modo per trovare rapidamente i duplicati, sia paragonabile o codici hash, altrimenti la scansione per dups sarebbe troppo dolorosa. –
È possibile assegnare a un set di alberi un comparatore che indica che gli elementi non devono essere comparabili (avrebbe dovuto essere un metodo di creazione separato per la modalità comparabile, IMO). –
Puoi anche controllare se qualcosa è nullo mentre lo estrai dal set. – cdmckay