Dans les classes de collection de base Java, vous ne pouvez stocker que des types de référence (quelque chose qui étend un java.lang.Object). Vous ne peut pas stocker des primitives comme int
et byte
. Notez qu'un tableau comme byte[]
n'est pas une primitive mais aussi un type de référence.
Comme mentionné @Giuseppe, vous pouvez le définir comme ceci:
Hashtable<Integer, ArrayList<Byte>> table = new Hashtable<Integer, ArrayList<Byte>>();
puis mis de int
primitifs » comme dans les clés:
table.put(4, ...);
parce que depuis Java 1.5, autoboxing sera automatiquement changez la primitive int
en une Integer
(une enveloppe) dans les coulisses.
Si vous avez besoin de plus de rapidité (et que vous avez mesuré les classes de collection de wrapper sont le problème!), Vous pouvez utiliser une bibliothèque tierce qui peut stocker des primitives dans leurs collections. Un exemple de telles bibliothèques est Trove et Colt.