fork download
  1. import java.util.*;
  2.  
  3. class LegacyGlueifier
  4. {
  5. public static void main(String[] args)
  6. {
  7. HashMap<String, String> derp = new HashMap<String, String>();
  8. derp.put("key1", "1,2,3,4");
  9. derp.put("key2", "5,6");
  10. derp.put("key3", "7,8,9,A");
  11. System.out.println(generateLegacyDataset(derp));
  12. }
  13.  
  14. private LegacyGlueifier()
  15. {
  16. }
  17.  
  18. public static String generateLegacyDataset(Map<String, String> data)
  19. {
  20. final ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>();
  21. final int width = data.size();
  22.  
  23. int i = 0;
  24. for (Map.Entry<String, String> entry : data.entrySet())
  25. {
  26. String[] values = entry.getValue().split(",");
  27. changeDims(lists, width, values.length + 1);
  28.  
  29. for (int j = 0; j < values.length; ++j) setValue(lists, j + 1, i, values[j]);
  30. setValue(lists, 0, i, entry.getKey());
  31. ++i;
  32. }
  33.  
  34. return stringify(lists);
  35. }
  36.  
  37. private static void changeDims(ArrayList<ArrayList<String>> lists, int width, int newHeight)
  38. {
  39. while (lists.size() < newHeight) lists.add(arrayListOfSize(width));
  40. }
  41.  
  42. private static ArrayList<String> arrayListOfSize(int w)
  43. {
  44. ArrayList<String> list = new ArrayList<String>(w);
  45. while (list.size() < w) list.add(null);
  46. return list;
  47. }
  48.  
  49. private static void setValue(ArrayList<ArrayList<String>> lists, int row, int col, String val)
  50. {
  51. ArrayList<String> temp = lists.get(row);
  52. temp.set(col, val);
  53. // System.out.println("SET: " + row + " " + col + ": " + val);
  54. }
  55.  
  56. private static String swapNullWithEmpty(String s)
  57. {
  58. if (s == null) return "";
  59. return s;
  60. }
  61.  
  62. private static String stringify(ArrayList<ArrayList<String>> lists)
  63. {
  64. StringBuilder sb = new StringBuilder();
  65. for (ArrayList<String> sublist : lists)
  66. {
  67. if (sublist.size() != 0) sb.append(swapNullWithEmpty(sublist.get(0)));
  68. for (int i = 1; i < sublist.size(); ++i)
  69. sb.append("|").append(swapNullWithEmpty(sublist.get(i)));
  70. sb.append("\n");
  71. }
  72.  
  73. return sb.toString();
  74. }
  75. }
Success #stdin #stdout 0.03s 245632KB
stdin
Standard input is empty
stdout
key3|key2|key1
7|5|1
8|6|2
9||3
A||4