Вы можете использовать сериализацию вместо toString.
Посмотрите на Гсона / Джексона.
Эти библиотеки позволяют преобразовывать объект в строку и анализировать строку обратно в объект.
Например, Gson позволяет преобразовать любой объект в JSON, а затем вернуться к объекту следующим образом:
List<String> list1 = new ArrayList<>();
// Populate the list
Gson gson = new Gson();
String jsonifiedList = gson.toJson(list1);
Затем сделайте то, что вам нужно, с помощью строковой формы списка и получите ее:
List<String> list2 = gson.fromJson(jsonifiedList, new TypeToken<List<String>>(){}.getType());
Если ваш список содержит более сложные объекты, вам может понадобиться добавить JsonSerializer
к вашему Gson
объекту, чтобы он знал, как создавать и анализировать JSON.