Object#toString()
возвращает String
, а не ArrayList
.Это твоя проблема.Вы действительно должны зацикливаться на этом.Нет абсолютно никаких причин для отвращения к зацикливанию.Просто скройте его в каком-нибудь служебном методе, если код вас как-то беспокоит;)
В Java 8 вы можете использовать лямбда-выражения, потоки и ссылки на методы для упрощения вашего кода.1010 * Следующая
List<User> users = getItSomehow();
List<String> names = new ArrayList<String>();
for (User user : users) {
names.add(user.getName());
}
может быть затем сокращена до
List<User> users = getItSomehow();
List<String> names = users.stream().map(User::getName).collect(Collectors.toList());
Кстати, вы также можете поместить for
в одну строку:
for (User user : users) names.add(user.getName());
Однако для начинающих это может быть непонятно.