У меня есть коллекция Ingredient
объектов, для которых я хотел бы получить все их имена (через getName()
) и объединить их в строку с разделителями-запятыми. В настоящее время мой код выглядит следующим образом:Есть ли более простой способ собирать строки из коллекции объектов?
public static String getIngredientList(Collection<Ingredient> ingredients) {
final Iterator<Ingredient> iterator = ingredients.iterator();
final String[] names = new String[ingredients.size()];
for (int i = 0; iterator.hasNext(); i++) {
names[i] = iterator.next().getName();
}
return TextUtils.join(", ", names);
}
мне интересно, если есть более краткий способ собрать все имена в String[]
объекта. Если бы это было рубин, например, было бы легко снять короткий Однострочник сделать именно то, что мне нужно:
ingredients.map(&:name).join(', ')
@ 323go возможно Ингредиенты будут иметь больше, чем поле – Blackbelt
дубликат http://stackoverflow.com/questions/205555/the-most-sophisticated-way-for-creating-comma-separated-strings-from-a-collectio – MrSimpleMind
Это было бы сложным и не очень хорошим способом, но вы можете реализовать toString из 'Ingredient', который будет возвращать только значение имени. И тогда вы можете просто использовать 'TextUtils.join (", ", components.toArray())' –