import java.util.*;
import java.util.stream.*;
interface Named {
String getName();
}
class Flower implements Named {
private String name;
public Flower(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class City implements Named {
private String name;
public City(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Star implements Named {
private String name;
public Star(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
var rows = Arrays.asList(
new Flower("Rose"),
new City("Rome"),
new Star("Sirius"));
var names = rows
.stream()
.map(e -> e.getName())
.collect(Collectors.toList());
var list = String.join(", ", names);
//list is Rose, Rome, Sirius
System.out.printf("list is '%s'", list);