2009-09-23 32 views
12

Seri hale getirilebilir javada bir 2D dizi yapmak mümkün mü?Çok boyutlu dizinin Java serileştirmesi

Değilse, 3x3 boyutlu bir 2B dizisini Vektörlerin Vektörüne "çevirmek" istiyorum.

Vektörlerle etrafta dolaşıyorum ve bunun nasıl temsil edileceğinden hala emin değilim. Biri bana yardım edebilir mi?

Teşekkürler! Java'daki diziler serileştirilebilir - böylece Diziler Dizileri de seri hale getirilebilirler.

cevap

18

İçerdikleri nesneler olmayabilir, bu nedenle dizinin içeriğinin serileştirilebildiğini kontrol edin - eğer yapmadıysa yapın.

İşte bir örnek, ints dizilerini kullanarak.

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); 
     } 
    } 
} 

Çıktı:

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

Hm, tamam. Çok boyutlu dizim tamsayılardan başka bir şey barındırmıyor, ancak dizinin kendisinin gerçekten serileştirilebileceğini bildiğim için teşekkürler ... – littleK

+0

Benim için ints ile çalışır - neden bir sorun gördüğünüzden emin değilim. İyi şanslar! – Brabster