You can do it using both:
JSONArray directly as,
String toJson(Collection> list)
{
return new JSONArray(list).toString();
}
Or by iterating the list with Java8 (like @ShadowJohn solution):
String toJson(Collection> list)
{
return new JSONArray(
list.stream()
.map((map) -> new JSONObject(map))
.collect(Collectors.toList()))
.toString();
}