2010-11-20 18 views
23

mogłem myśleć o tych rzeczach,konwersji tablicę bajtów do listy <Byte>

  1. Arrays.asList(byte[]) konwertuje byte[] do List<byte[]>,
  2. przelotowego tablicy bajtów i dodać każdy element do listy

I zastanawiałem się Czy istnieje jakaś funkcja biblioteczna, aby to zrobić?

+1

Czy "Arrays.asList" nie jest "funkcją biblioteczną"? – vitaut

+6

@vitaut: Chodzi o to, że Arrays.asList robi tu niewłaściwą rzecz. –

+0

wystąpił problem w moim formatowaniu, zamienia go na Listę , a nie na Listę

Odpowiedz

13

Dla Byte[] zamiast byte[] to będzie działać:

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

nie można przekonwertować z listy na listę

+0

Tak, masz rację. Działa tylko z Byte []. Zmieniłem odpowiedź. – chkal

+2

ohh k .. to interesujące ... czy mogę przekonwertować bajt [] na Byte []? –

10

Biblioteka Apache Commons Lang ma ArrayUtils.toObject, która zamienia prymitywną tablicę do wpisywanych tablicy obiektu:

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

Dla powyższej odpowiedzi: jeśli bajty są tablicami bajtów (bajtów bajtowych []), można wykonać następujące czynności: 'Lista 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

Nie działa, ponieważ zadeklarowałeś listę z bajtem i próbujesz dodać bajt. –

5

Jak this post sugeruje: guava Bytes class może pomóc:

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