comment convertir byte[] pour Byte[], et dans l'autre sens?
Comment convertir byte[] pour Byte[], et aussi Byte[] pour byte[], dans le cas de ne pas utiliser du tout de la 3e partie de la bibliothèque? Est-il un moyen de le faire rapidement et simplement en utilisant la bibliothèque standard?
- 10 questions, il est accepté? Pas bon
- Pourquoi avez-vous besoin/ont un
Byte[]
? Ne semble pas être une bonne idée... soit utiliserbyte[]
ouList<Byte>
. - Peut être utile si les valeurs peuvent être nulles, mais probablement pas très efficace (c'est à dire. les déchets de l'espace; avantage de stocker des octets, parce que de toutes les références d'objet)?
- Mais vous ne pouvez pas convertir un
Byte[]
à unbyte[]
si vous avez des références nulles... - ok, 1 de 7. N'ont pas beaucoup amélioré!
- L'une des raisons d'avoir Byte [], c'est qu'il devient une forme intermédiaire d'essayer d'appeler toArray sur une Liste<Byte>. Dans ce cas, la rédaction de votre propre boucle semble être le moyen le plus facile.
Vous devez vous connecter pour publier un commentaire.
Byte
classe est un wrapper de la primitivebyte
. Cela devrait faire le travail:Byte.valueOf(b)
surnew Byte(b)
. Je serais surpris si l'Octet de classe n'a pas de cache à chaque valeur unique pour un octet.Byte.valueOf(byte)
. La documentation javadoc dire que cette méthode doit généralement être utilisés de préférence pour le constructeurByte(byte)
, que cette méthode est susceptible d'avoir nettement mieux l'espace et le temps de la performance car toutes les valeurs d'octets sont mis en cache.byteObjects[i++] = b;
new Byte[bytes.length];
au lieu denew Byte[10];
garder raisonnable.byte[] pour Byte[] :
Byte[] pour byte[] :
Vous pouvez utiliser le toPrimitive à la méthode d'Apache Commons lang bibliothèque ArrayUtils classe,
Comme suggéré ici - Java Byte[] pour byte[]
Java 8 solution:
Malheureusement, vous ne pouvez pas le faire pour convertir
Byte[]
àbyte[]
.Arrays
asetAll
pourdouble[]
,int[]
, etlong[]
, mais pas pour d'autres types de primitives.De byte[] pour Byte[]:
De Byte[] pour byte[] (à l'aide de nos précédemment définis,
B
):Inverse: