I want to make sure if it's good. Maybe there is another better solution.

List<String[]> list = new ArrayList<String[]>();
for (int i = 0; i < 3; i++) {
String[] arr = { String.valueOf(i) };
}

String json = new Gson().toJson(list);
System.out.println(json);


Expected output:

[
[
"0"
],
[
"1"
],
[
"2"
]
]

• Please give a brief explanation of the purpose of the code in the question. Even quoting verbatim is ok (if the licence allows it) – Caridorc Dec 14 '15 at 18:48

If you are able to use Java 8 you can use streams:

List<String[]> list = IntStream.range(0, 3)
.mapToObj(i -> new String[] { String.valueOf(i) })
.collect(Collectors.toList());


Let's break it down:

• IntStream.range(0, 3) gives you the values 0, 1 and 2
• .mapToObj(i -> new String[] { String.valueOf(i) }) converts them to a string and puts them into a String[]
• .collect(Collectors.toList()) collects the stream into a List<String[]>
• +1, but unfortunately I can't use java 8 – Adamo Dec 14 '15 at 18:16