Je voudrais avoir un objet qui est une liste redimensionnable de byte
s qui implémente l'interface suivante:Java: quel type dois-je utiliser comme liste de primitives redimensionnable?
- obtenir la taille actuelle
- clairement la liste (Réinitialiser la taille à zéro)
- ajouter un
byte
à la fin - supprimer un
byte
de l'extrémité - valeur get d'un élément quelconque de l'indice
Il est également connu que cette liste ne doit jamais contenir plus de 21 éléments.
J'ai déjà implémenté cet objet comme un simple tableau, byte[]
de taille 21, et un int
qui donne l'index du prochain élément non encore rempli, et qui a eu beaucoup de succès en l'utilisant.
Cela semble être une implémentation simple mais Java n'a-t-il pas déjà un type de construction pour ce genre de chose? J'imagine que la nécessité d'une telle chose est extrêmement préventive. J'ai essayé d'utiliser un ArrayList<Byte>
mais il est super lent et mon runtime évolue exponentiellement avec des itérations. Est-ce que je souffre des pertes de performance de boxe/déballage? Quel type prédéfini dois-je utiliser comme ma liste de primitives redimensionnable?
Qu'en est-'' LinkedList? c'est la meilleure option pour les quatre premières clauses –
Andrew
@AndrewTobilko: Si 'ArrayList' est '' super lent '' dans leur cas d'utilisation, je ne peux pas voir 'LinkedList ' étant beaucoup, voire aucun, meilleur. –
Quelle est votre motivation pour faire un changement? Si vous avez quelque chose qui fonctionne bien pour votre scénario et que vous savez déjà que 'ArrayList' ne convient pas ...? –