Advertisement
Guest User

Serializing generic multiple 2d arrays

a guest
Mar 30th, 2015
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.45 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.List;
  5.  
  6. public class Test {
  7.  
  8.     public static void main(String[] args) {
  9.  
  10.         List<List<ElementWrapper>> listA = randomList(5, 5);
  11.         List<List<ElementWrapper>> listB = randomList(2, 3);
  12.         List<List<ElementWrapper>> listC = randomList(4, 1);
  13.  
  14.         List<List<List<ElementWrapper>>> lists = new ArrayList<List<List<ElementWrapper>>>(3);
  15.         lists.add(listA);
  16.         lists.add(listB);
  17.         lists.add(listC);
  18.  
  19.         List<List<List<ElementWrapper>>> newLists = null;
  20.  
  21.         printLists(lists);
  22.         try {
  23.             FileOutputStream fos = new FileOutputStream("testt.txt");
  24.             ObjectOutputStream oos = new ObjectOutputStream(fos);
  25.             oos.writeObject(lists);
  26.  
  27.             FileInputStream fis = new FileInputStream("testt.txt");
  28.             ObjectInputStream iis = new ObjectInputStream(fis);
  29.             newLists = (List<List<List<ElementWrapper>>>) iis.readObject();
  30.  
  31.         } catch (Exception e) {
  32.             System.out.print(e);
  33.         }
  34.  
  35.         System.out.println("After serialization");
  36.         printLists(newLists);
  37.  
  38.     }
  39.  
  40.     public static List<List<ElementWrapper>> randomList(int row, int col) {
  41.         ArrayList<List<ElementWrapper>> list = new ArrayList<List<ElementWrapper>>();
  42.         for (int i = 0; i < row; i++) {
  43.             ArrayList<ElementWrapper> innerList = new ArrayList<ElementWrapper>(col);
  44.             for (int j = 0; j < col; j++) {
  45.                 double randNum = Math.random() * 100;
  46.                 ElementWrapper<Double> wrapper = new ElementWrapper<Double>();
  47.                 wrapper.element = randNum;
  48.                 innerList.add(wrapper);
  49.             }
  50.             list.add(innerList);
  51.         }
  52.         return list;
  53.     }
  54.  
  55.     public static void printLists(List<List<List<ElementWrapper>>> lists) {
  56.         for (List<List<ElementWrapper>> innerLists : lists) {
  57.             for (List<ElementWrapper> list : innerLists) {
  58.                 for (ElementWrapper num : list) {
  59.                     System.out.print(num + " ");
  60.                 }
  61.                 System.out.print("\n");
  62.             }
  63.             System.out.print("\n-----\n");
  64.         }
  65.     }
  66.  
  67.     public static class ElementWrapper<E> implements Serializable {
  68.         public E element;
  69.  
  70.         @Override
  71.         public String toString() {
  72.             return element.toString();
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement