Perché le raccolte Java non sono inserite in un pacchetto dedicato

6

Perché risiedono semplicemente in java.util e non in un posto più specializzato come java.collections o java.util.collections?

Potrebbe contribuire a rovinare un codice diverso e non correlato. Non potrebbe? È stata una decisione motivata a comunicare con l'esterno di JCF a livello di pacchetto o piuttosto un patrimonio storico?

    
posta g.cze 01.09.2015 - 23:42
fonte

1 risposta

2

Mentre si poteva, ipoteticamente, aver reso java.util.collections per tutte le nuove collezioni che facevano parte del quadro delle collezioni , il fatto è che esistevano alcune classi di collezioni che esistevano prima di loro.

In particolare, java.util.Dictonary ( javadoc ) avrebbe stato in un pacchetto separato rispetto a java.util.Map ( javadoc ). Allo stesso modo, hai Hashtable e HashMap . java.util.Vector ( javadoc ) implementa java.util.List ( javadoc ) adesso.

Ovviamente, spostare Vector e Hashtable in un nuovo pacchetto è fuori questione e fare una copia del codice o della sottoclasse in un nuovo pacchetto causa ancora più mal di testa (non voglio neppure pensare circa il casino che potrebbe causare).

Quando guardi il pacchetto java.util , vedrai che sono soprattutto le collezioni con poche altre classi di utilità che si trovano lì dentro.

Quindi non ha molto senso provare a posizionare le nuove classi in un pacchetto diverso.

Contains the collections framework, legacy collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes (a string tokenizer, a random-number generator, and a bit array).

java.util continua il framework di raccolta. Questo è prima di tutto. Le sole raccolte che si trovano in un pacchetto diverso sono quelle utilizzate da java.util.concurrent che si concentra sulla concorrenza. Questi sono ancora considerati parte del framework delle collezioni. Da java.util.concurrent.ConcurrentNavigableMap :

public interface ConcurrentNavigableMap<K,V>
extends ConcurrentMap<K,V>, NavigableMap<K,V>
A ConcurrentMap supporting NavigableMap operations, and recursively so for its navigable sub-maps.
This interface is a member of the Java Collections Framework.

Since:
1.6

    
risposta data 09.09.2015 - 03:20
fonte

Leggi altre domande sui tag