2010-11-20 10 views
23

je pouvais penser à ces choses,convertir un tableau d'octets à la liste <Byte>

  1. Arrays.asList(byte[]) convertit byte[] à List<byte[]>,
  2. en boucle par tableau d'octets et ajouter chaque élément à la liste

I se demandait simplement Y at-il une fonction de la bibliothèque pour le faire?

+1

Est-ce que 'Arrays.asList' n'est pas une" fonction de bibliothèque "? – vitaut

+6

@vitaut: Le point est que Arrays.asList fait la mauvaise chose ici. –

+0

il y avait un certain problème dans mon formatage, il convertit à la liste et non Liste

Répondre

13

Pour Byte[] au lieu de byte[] cela fonctionnerait:

Byte[] array = .... 
    List<Byte> list = Arrays.asList(array); 
+4

ne peut pas convertir de la liste à la liste

+0

Oui, vous avez raison. Cela ne fonctionne qu'avec Byte []. J'ai modifié la réponse. – chkal

+2

ohh k .. c'est intéressant ... maintenant je peux convertir byte [] en Byte []? –

10

Bibliothèque Apache Commons Lang a ArrayUtils.toObject, qui transforme un tableau primitif à un tableau d'objets typés:

int array[] = { 1, 2, 3 }; 
List<Integer> list = Arrays.asList(ArrayUtils.toObject(array)); 
+0

Pour cette réponse ci-dessus: si les octets sont des tableaux d'octets (octets [] octets), vous pouvez faire ceci: 'Liste byteList = Arrays.asList (ArrayUtils.toObject (bytes));' – jpmottin

0
byte[] byteArray; 
List<Byte> medianList=new ArrayList<>(); 
int median=0,count=0; 
Path file=Paths.get("velocities.txt"); 
if(Files.exists(file)){ 
    byteArray=Files.readAllBytes(file); 
} 
medianList.addAll(Arrays.asList(byteArray)); 
+0

Ne comprend pas travaillez, car vous avez déclaré la liste avec Byte et vous essayez d'ajouter un octet. –

5

Comme this post suggère: le guava Bytes class peut aider:

byte[] bytes = ... 
List<Byte> byteList = Bytes.asList(bytes);