2009-09-23 11 views
12

Czy można przekształcić tablicę 2D w java do postaci szeregowej?Serializacja Java wielowymiarowych tablic

Jeśli nie, czekam na "przetłumaczenie" tablicy 3x3 2D na wektor wektorów.

Bawiłem się z wektorów, i nadal nie jestem pewien, jak to reprezentować. Czy ktoś może mi pomóc?

Dzięki!

Odpowiedz

18

Tablice w języku Java można przekształcać do postaci szeregowej - dzięki temu tablice tablic są również przekształcalne do postaci szeregowej.

Obiekty, które zawierają, mogą jednak nie być, więc sprawdź, czy zawartość tablicy jest możliwa do serializacji - jeśli nie, ułóż tak.

Oto przykład, używając tablic int.

public static void main(String[] args) { 

    int[][] twoD = new int[][] { new int[] { 1, 2 }, 
      new int[] { 3, 4 } }; 

    int[][] newTwoD = null; // will deserialize to this 

    System.out.println("Before serialization"); 
    for (int[] arr : twoD) { 
     for (int val : arr) { 
      System.out.println(val); 
     } 
    } 

    try { 
     FileOutputStream fos = new FileOutputStream("test.dat"); 
     ObjectOutputStream oos = new ObjectOutputStream(fos); 
     oos.writeObject(twoD); 

     FileInputStream fis = new FileInputStream("test.dat"); 
     ObjectInputStream iis = new ObjectInputStream(fis); 
     newTwoD = (int[][]) iis.readObject(); 

    } catch (Exception e) { 

    } 

    System.out.println("After serialization"); 
    for (int[] arr : newTwoD) { 
     for (int val : arr) { 
      System.out.println(val); 
     } 
    } 
} 

wyjściowa:

Before serialization 
1 
2 
3 
4 
After serialization 
1 
2 
3 
4 
+0

Hm, dobrze. Moja wielowymiarowa tablica zawiera tylko liczby całkowite, ale cieszę się, że sama tablica jest rzeczywiście możliwa do serializacji, dzięki ... – littleK

+0

Współpracuje z ints dla mnie - nie wiem, dlaczego widzisz problem. Powodzenia! – Brabster

Powiązane problemy