I have an ArrayList of String arrays in java named:
List<String[]> initialList = new ArrayList<String[]>();
This contains the following data (This is a snippet of it, it actually includes about 900 rows that go on to include Charlie, Delta, Echo, each with the same structure as these:
[Alpha, A1, 1, null]
[Alpha, A1, 2, null]
[Alpha, A1, 3, null]
[Alpha, A1, 4, null]
[Alpha, A1, 5, null]
[Alpha, A1, 6, null]
[Alpha, A1, 7, null]
[Alpha, A1, 8, null]
[Alpha, A1, 9, null]
[Alpha, A1, 10, null]
[Alpha, A1, 11, null]
[Alpha, A1, 12, null]
[Alpha, A1, 13, null]
[Alpha, A1, 14, null]
[Alpha, A1, 15, null]
[Alpha, A1, 16, null]
[Alpha, A1, 17, null]
[Alpha, A1, 18, null]
[Alpha, A1, 19, null]
[Alpha, A1, 20, null]
[Alpha, A1, 21, null]
[Alpha, A1, 22, null]
[Alpha, A1, 23, null]
[Alpha, A1, 24, null]
[Alpha, A1, 25, null]
[Alpha, A1, 26, null]
[Alpha, A1, 27, null]
[Alpha, A1, 28, null]
[Alpha, A1, 29, null]
[Alpha, A1, 30, null]
[Alpha, A1, 31, null]
[Alpha, A1, 32, null]
[Alpha, A1, 33, null]
[Alpha, A1, 34, null]
[Alpha, A1, 35, null]
[Alpha, A1, 36, null]
[Alpha, A1, 37, null]
[Alpha, A1, 38, null]
[Alpha, A1, 39, null]
[Alpha, A1, 40, null]
[Alpha, A1, 41, null]
[Alpha, A1, 42, null]
[Alpha, A1, 43, null]
[Alpha, A1, 44, null]
[Alpha, A1, 45, null]
[Alpha, A1, 46, null]
[Alpha, A1, 47, null]
[Alpha, A1, 48, null]
[Alpha, A1, 49, null]
[Alpha, A1, 50, null]
[Alpha, A1, 51, null]
[Alpha, A1, 52, null]
[Alpha, A1, 53, null]
[Alpha, A1, 54, null]
[Alpha, A2, 1, null]
[Alpha, A2, 2, null]
[Alpha, A2, 3, null]
[Alpha, A2, 4, null]
[Alpha, A2, 5, null]
[Alpha, A2, 6, null]
[Alpha, A2, 7, null]
[Alpha, A2, 8, null]
[Alpha, A2, 9, null]
[Alpha, A2, 10, null]
[Alpha, A2, 11, null]
[Alpha, A2, 12, null]
[Alpha, A2, 13, null]
[Alpha, A2, 14, null]
[Alpha, A2, 15, null]
[Alpha, A2, 16, null]
[Alpha, A2, 17, null]
[Alpha, A2, 18, null]
[Alpha, A2, 19, null]
[Alpha, A2, 20, null]
[Alpha, A2, 21, null]
[Alpha, A2, 22, null]
[Alpha, A2, 23, null]
[Alpha, A2, 24, null]
[Alpha, A2, 25, null]
[Alpha, A2, 26, null]
[Alpha, A2, 27, null]
[Alpha, A2, 28, null]
[Alpha, A2, 29, null]
[Alpha, A2, 30, null]
[Alpha, A2, 31, null]
[Alpha, A2, 32, null]
[Alpha, A2, 33, null]
[Alpha, A2, 34, null]
[Alpha, A2, 35, null]
[Alpha, A2, 36, null]
[Alpha, A2, 37, null]
[Alpha, A2, 38, null]
[Alpha, A2, 39, null]
[Alpha, A2, 40, null]
[Alpha, A2, 41, null]
[Alpha, A2, 42, null]
[Alpha, A2, 43, null]
[Alpha, A2, 44, null]
[Alpha, A2, 45, null]
[Alpha, A2, 46, null]
[Alpha, A2, 47, null]
[Alpha, A2, 48, null]
[Alpha, A2, 49, null]
[Alpha, A2, 50, null]
[Alpha, A2, 51, null]
[Alpha, A2, 52, null]
[Alpha, A2, 53, null]
[Alpha, A2, 54, null]
[Alpha, A3, 1, null]
[Alpha, A3, 2, null]
[Alpha, A3, 3, null]
[Alpha, A3, 4, null]
[Alpha, A3, 5, null]
[Alpha, A3, 6, null]
[Alpha, A3, 7, null]
[Alpha, A3, 8, null]
[Alpha, A3, 9, null]
[Alpha, A3, 10, null]
[Alpha, A3, 11, null]
[Alpha, A3, 12, null]
[Alpha, A3, 13, null]
[Alpha, A3, 14, null]
[Alpha, A3, 15, null]
[Alpha, A3, 16, null]
[Alpha, A3, 17, null]
[Alpha, A3, 18, null]
[Alpha, A3, 19, null]
[Alpha, A3, 20, null]
[Alpha, A3, 21, null]
[Alpha, A3, 22, null]
[Alpha, A3, 23, null]
[Alpha, A3, 24, null]
[Alpha, A3, 25, null]
[Alpha, A3, 26, null]
[Alpha, A3, 27, null]
[Alpha, A3, 28, null]
[Alpha, A3, 29, null]
[Alpha, A3, 30, null]
[Alpha, A3, 31, null]
[Alpha, A3, 32, null]
[Alpha, A3, 33, null]
[Alpha, A3, 34, null]
[Alpha, A3, 35, null]
[Alpha, A3, 36, null]
[Alpha, A3, 37, null]
[Alpha, A3, 38, null]
[Alpha, A3, 39, null]
[Alpha, A3, 40, null]
[Alpha, A3, 41, null]
[Alpha, A3, 42, null]
[Alpha, A3, 43, null]
[Alpha, A3, 44, null]
[Alpha, A3, 45, null]
[Alpha, A3, 46, null]
[Alpha, A3, 47, null]
[Alpha, A3, 48, null]
[Alpha, A3, 49, null]
[Alpha, A3, 50, null]
[Alpha, A3, 51, null]
[Alpha, A3, 52, null]
[Alpha, A3, 53, null]
[Alpha, A3, 54, null]
[Alpha, A3, 55, null]
[Alpha, A3, 56, null]
[Alpha, A3, 57, null]
[Alpha, A3, 58, null]
[Alpha, A3, 59, null]
[Alpha, A3, 60, null]
[Alpha, A4, 1, null]
[Alpha, A4, 2, null]
[Alpha, A4, 3, null]
[Alpha, A4, 4, null]
[Alpha, A4, 5, null]
[Alpha, A4, 6, null]
[Alpha, A4, 7, null]
[Alpha, A4, 8, null]
[Alpha, A4, 9, null]
[Alpha, A4, 10, null]
[Alpha, A4, 11, null]
[Alpha, A4, 12, null]
[Alpha, A4, 13, null]
[Alpha, A4, 14, null]
[Alpha, A4, 15, null]
[Alpha, A4, 16, null]
[Alpha, A4, 17, null]
[Alpha, A4, 18, null]
[Alpha, A4, 19, null]
[Alpha, A4, 20, null]
[Alpha, A4, 21, null]
[Alpha, A4, 22, null]
[Alpha, A4, 23, null]
[Alpha, A4, 24, null]
[Alpha, A4, 25, null]
[Alpha, A4, 26, null]
[Alpha, A4, 27, null]
[Alpha, A4, 28, null]
[Alpha, A4, 29, null]
[Alpha, A4, 30, null]
[Alpha, A4, 31, null]
[Alpha, A4, 32, null]
[Alpha, A4, 33, null]
[Alpha, A4, 34, null]
[Alpha, A4, 35, null]
[Alpha, A4, 36, null]
[Alpha, A4, 37, null]
[Alpha, A4, 38, null]
[Alpha, A4, 39, null]
[Alpha, A4, 40, null]
[Alpha, A4, 41, null]
[Alpha, A4, 42, null]
[Alpha, A4, 43, null]
[Alpha, A4, 44, null]
[Alpha, A4, 45, null]
[Alpha, A4, 46, null]
[Alpha, A4, 47, null]
[Alpha, A4, 48, null]
[Alpha, A4, 49, null]
[Alpha, A4, 50, null]
[Alpha, A4, 51, null]
[Alpha, A4, 52, null]
[Alpha, A4, 53, null]
[Alpha, A4, 54, null]
[Alpha, A4, 55, null]
[Alpha, A4, 56, null]
[Alpha, A4, 57, null]
[Alpha, A4, 58, null]
[Alpha, A4, 59, null]
[Alpha, A4, 60, null]
[Bravo, B1, 1, null]
[Bravo, B1, 2, null]
[Bravo, B1, 3, null]
[Bravo, B1, 4, null]
[Bravo, B1, 5, null]
[Bravo, B1, 6, null]
[Bravo, B1, 7, null]
[Bravo, B1, 8, null]
[Bravo, B1, 9, null]
[Bravo, B1, 10, null]
[Bravo, B1, 11, null]
[Bravo, B1, 12, null]
[Bravo, B1, 13, null]
[Bravo, B1, 14, null]
[Bravo, B1, 15, null]
[Bravo, B1, 16, null]
[Bravo, B1, 17, null]
[Bravo, B1, 18, null]
[Bravo, B1, 19, null]
[Bravo, B1, 20, null]
[Bravo, B1, 21, null]
[Bravo, B1, 22, null]
[Bravo, B1, 23, null]
[Bravo, B1, 24, null]
[Bravo, B1, 25, null]
[Bravo, B1, 26, null]
[Bravo, B1, 27, null]
[Bravo, B1, 28, null]
[Bravo, B1, 29, null]
[Bravo, B1, 30, null]
[Bravo, B1, 31, null]
[Bravo, B1, 32, null]
[Bravo, B1, 33, null]
[Bravo, B1, 34, null]
[Bravo, B1, 35, null]
[Bravo, B1, 36, null]
[Bravo, B1, 37, null]
[Bravo, B1, 38, null]
[Bravo, B1, 39, null]
[Bravo, B1, 40, null]
[Bravo, B1, 41, null]
[Bravo, B1, 42, null]
[Bravo, B1, 43, null]
[Bravo, B1, 44, null]
[Bravo, B1, 45, null]
[Bravo, B1, 46, null]
[Bravo, B1, 47, null]
[Bravo, B1, 48, null]
[Bravo, B1, 49, null]
[Bravo, B1, 50, null]
[Bravo, B1, 51, null]
[Bravo, B1, 52, null]
[Bravo, B1, 53, null]
[Bravo, B1, 54, null]
[Bravo, B1, 55, null]
[Bravo, B1, 56, null]
[Bravo, B1, 57, null]
[Bravo, B1, 58, null]
[Bravo, B1, 59, null]
[Bravo, B1, 60, null]
[Bravo, B2, 1, null]
[Bravo, B2, 2, null]
[Bravo, B2, 3, null]
[Bravo, B2, 4, null]
[Bravo, B2, 5, null]
[Bravo, B2, 6, null]
[Bravo, B2, 7, null]
[Bravo, B2, 8, null]
[Bravo, B2, 9, null]
[Bravo, B2, 10, null]
[Bravo, B2, 11, null]
[Bravo, B2, 12, null]
[Bravo, B2, 13, null]
[Bravo, B2, 14, null]
[Bravo, B2, 15, null]
[Bravo, B2, 16, null]
[Bravo, B2, 17, null]
[Bravo, B2, 18, null]
[Bravo, B2, 19, null]
[Bravo, B2, 20, null]
[Bravo, B2, 21, null]
[Bravo, B2, 22, null]
[Bravo, B2, 23, null]
[Bravo, B2, 24, null]
[Bravo, B2, 25, null]
[Bravo, B2, 26, null]
[Bravo, B2, 27, null]
[Bravo, B2, 28, null]
[Bravo, B2, 29, null]
[Bravo, B2, 30, null]
[Bravo, B2, 31, null]
[Bravo, B2, 32, null]
[Bravo, B2, 33, null]
[Bravo, B2, 34, null]
[Bravo, B2, 35, null]
[Bravo, B2, 36, null]
[Bravo, B2, 37, null]
[Bravo, B2, 38, null]
[Bravo, B2, 39, null]
[Bravo, B2, 40, null]
[Bravo, B2, 41, null]
[Bravo, B2, 42, null]
[Bravo, B2, 43, null]
[Bravo, B2, 44, null]
[Bravo, B2, 45, null]
[Bravo, B2, 46, null]
[Bravo, B2, 47, null]
[Bravo, B2, 48, null]
[Bravo, B2, 49, null]
[Bravo, B2, 50, null]
[Bravo, B2, 51, null]
[Bravo, B2, 52, null]
[Bravo, B2, 53, null]
[Bravo, B2, 54, null]
[Bravo, B2, 55, null]
[Bravo, B2, 56, null]
[Bravo, B2, 57, null]
[Bravo, B2, 58, null]
[Bravo, B2, 59, null]
[Bravo, B2, 60, null]
[Bravo, B3, 1, null]
[Bravo, B3, 2, null]
[Bravo, B3, 3, null]
[Bravo, B3, 4, null]
[Bravo, B3, 5, null]
[Bravo, B3, 6, null]
[Bravo, B3, 7, null]
[Bravo, B3, 8, null]
[Bravo, B3, 9, null]
[Bravo, B3, 10, null]
[Bravo, B3, 11, null]
[Bravo, B3, 12, null]
[Bravo, B3, 13, null]
[Bravo, B3, 14, null]
[Bravo, B3, 15, null]
[Bravo, B3, 16, null]
[Bravo, B3, 17, null]
[Bravo, B3, 18, null]
[Bravo, B3, 19, null]
[Bravo, B3, 20, null]
[Bravo, B3, 21, null]
[Bravo, B3, 22, null]
[Bravo, B3, 23, null]
[Bravo, B3, 24, null]
[Bravo, B3, 25, null]
[Bravo, B3, 26, null]
[Bravo, B3, 27, null]
[Bravo, B3, 28, null]
[Bravo, B3, 29, null]
[Bravo, B3, 30, null]
[Bravo, B3, 31, null]
[Bravo, B3, 32, null]
[Bravo, B3, 33, null]
[Bravo, B3, 34, null]
[Bravo, B3, 35, null]
[Bravo, B3, 36, null]
[Bravo, B3, 37, null]
[Bravo, B3, 38, null]
[Bravo, B3, 39, null]
[Bravo, B3, 40, null]
[Bravo, B3, 41, null]
[Bravo, B3, 42, null]
[Bravo, B3, 43, null]
[Bravo, B3, 44, null]
[Bravo, B3, 45, null]
[Bravo, B3, 46, null]
[Bravo, B3, 47, null]
[Bravo, B3, 48, null]
[Bravo, B3, 49, null]
[Bravo, B3, 50, null]
[Bravo, B3, 51, null]
[Bravo, B3, 52, null]
[Bravo, B3, 53, null]
The structure is as follows: Alpha, Bravo, Charlie, Delta, and Echo are root nodes that hold: (A1, A2, A3, A4) (B1, B2, B3, B4) (C1, C2, C3, C4) ect... which then each hold a 'n' number of spots where each number holds a persons name.
I need to make this into a Hierarchical Tree Structure. I have tried the following:
Map<String, Set<String>> myNodes = new LinkedHashMap<String, Set<String>>();
for(String[] myArray : initialList) {
String previousNode = null;
for(String node : myArray) {
if(myNodes.get(node) == null) {
myNodes.put(node, new HashSet<String>());
}
if(previousNode != null) {
myNodes.get(previousNode).add(node);
}
previousNode = node;
}
}
But this outputs as follows, which as you can see is wrong and not what I am looking for (again, just a snippet of the full output).
Alpha : [A2, A1, A4, A3]
A1 : [35, 36, 33, 34, 39, 37, 38, 43, 42, 41, 40, 22, 23, 24, 25, 26, 27, 28, 29, 3, 2, 1, 7, 30, 6, 5, 32, 4, 31, 9, 8, 19, 17, 18, 15, 16, 13, 14, 11, 12, 21, 20, 49, 48, 45, 44, 47, 46, 10, 51, 52, 53, 54, 50]
1 : [null]
null : []
2 : [null]
null : []
3 : [null]
4 : [null]
5 : [null]
6 : [null]
7 : [null]
8 : [null]
9 : [null]
10 : [null]
11 : [null]
12 : [null]
13 : [null]
14 : [null]
15 : [null]
16 : [null]
17 : [null]
18 : [null]
19 : [null]
20 : [null]
21 : [null]
22 : [null]
23 : [null]
24 : [null]
25 : [null]
26 : [null]
27 : [null]
28 : [null]
29 : [null]
30 : [null]
31 : [null]
32 : [null]
33 : [null]
34 : [null]
35 : [null]
36 : [null]
37 : [null]
38 : [null]
39 : [null]
40 : [null]
41 : [null]
42 : [null]
43 : [null]
44 : [null]
45 : [null]
46 : [null]
47 : [null]
48 : [null]
49 : [null]
50 : [null]
51 : [null]
52 : [null]
53 : [null]
54 : [null]
A2 : [35, 36, 33, 34, 39, 37, 38, 43, 42, 41, 40, 22, 23, 24, 25, 26, 27, 28, 29, 3, 2, 1, 7, 30, 6, 5, 32, 4, 31, 9, 8, 19, 17, 18, 15, 16, 13, 14, 11, 12, 21, 20, 49, 48, 45, 44, 47, 46, 10, 51, 52, 53, 54, 50]
A3 : [35, 36, 33, 34, 39, 37, 38, 43, 42, 41, 40, 22, 23, 24, 25, 26, 27, 28, 29, 3, 2, 1, 7, 30, 6, 5, 32, 4, 31, 9, 8, 59, 58, 57, 56, 19, 55, 17, 18, 15, 16, 13, 14, 11, 12, 21, 20, 60, 49, 48, 45, 44, 47, 46, 10, 51, 52, 53, 54, 50]
55 : [null]
56 : [null]
57 : [null]
58 : [null]
59 : [null]
60 : [null]
A4 : [35, 36, 33, 34, 39, 37, 38, 43, 42, 41, 40, 22, 23, 24, 25, 26, 27, 28, 29, 3, 2, 1, 7, 30, 6, 5, 32, 4, 31, 9, 8, 59, 58, 57, 56, 19, 55, 17, 18, 15, 16, 13, 14, 11, 12, 21, 20, 60, 49, 48, 45, 44, 47, 46, 10, 51, 52, 53, 54, 50]
Bravo : [B4, B3, B2, B1]
B1 : [35, 36, 33, 34, 39, 37, 38, 43, 42, 41, 40, 22, 23, 24, 25, 26, 27, 28, 29, 3, 2, 1, 7, 30, 6, 5, 32, 4, 31, 9, 8, 59, 58, 57, 56, 19, 55, 17, 18, 15, 16, 13, 14, 11, 12, 21, 20, 60, 49, 48, 45, 44, 47, 46, 10, 51, 52, 53, 54, 50]
B2 : [35, 36, 33, 34, 39, 37, 38, 43, 42, 41, 40, 22, 23, 24, 25, 26, 27, 28, 29, 3, 2, 1, 7, 30, 6, 5, 32, 4, 31, 9, 8, 59, 58, 57, 56, 19, 55, 17, 18, 15, 16, 13, 14, 11, 12, 21, 20, 60, 49, 48, 45, 44, 47, 46, 10, 51, 52, 53, 54, 50]
B3 : [35, 36, 33, 34, 39, 37, 38, 43, 42, 41, 40, 22, 23, 24, 25, 26, 27, 28, 29, 3, 2, 1, 7, 30, 6, 5, 32, 4, 31, 9, 8, 59, 58, 57, 56, 19, 55, 17, 18, 15, 16, 13, 14, 11, 12, 21, 20, 60, 49, 48, 45, 44, 47, 46, 10, 51, 52, 53, 54, 50]
B4 : [35, 36, 33, 34, 39, 37, 38, 43, 42, 41, 40, 22, 23, 24, 25, 26, 27, 28, 29, 3, 2, 1, 7, 30, 6, 5, 32, 4, 31, 9, 8, 59, 58, 57, 56, 19, 55, 17, 18, 15, 16, 13, 14, 11, 12, 21, 20, 60, 49, 48, 45, 44, 47, 46, 10, 51, 52, 53, 54, 50]
This was using a Map and LinkedHashMap, so I also tried it with a TreeMap (not even sure if this is what I need though):
TreeMap<String, Set<String>> myNodes = new TreeMap<String, Set<String>>();
for(String[] myArray : initialList) {
String previousNode = null;
for(String node : myArray) {
if(myNodes.get(node) == null) {
myNodes.put(node, new HashSet<String>());
}
if(previousNode != null) {
myNodes.get(previousNode).add(node);
}
previousNode = node;
}
}
But got the following error:
Exception in thread "main" java.lang.NullPointerException
at java.util.TreeMap.getEntry(TreeMap.java:324)
at java.util.TreeMap.get(TreeMap.java:255)
I need it hierarchical as I described above. I would love to describe exactly what it should output, but truthfully, I am not sure, I just know it needs to have a heirarchy structure and converted to JSON as described below.
Also, this must be converted to JSON in the following format so please keep that in mind (again, actual output is much larger, this is simply a structure example:
{
"name":"Alpha",
"children":[
{
"name":"A1",
"children":[
{
"name":"1",
"children":[
{
"name":"null",
},
]
"name":"2",
"children":[
{
"name":"null",
},
]
"name":"3",
"children":[
{
"name":"null",
},
]
},
"name":"A2",
"children":[
{
"name":"1",
"children":[
{
"name":"null",
},
]
"name":"2",
"children":[
{
"name":"null",
},
]
"name":"3",
"children":[
{
"name":"null",
},
]
},
]
},
I would appreciate any help I can get because I am truly stumped. Thanks!