С Java 8 вы можете использовать stream() и map() для более сжатого и понятного варианта:
data.stream().map(Mydata::getName).collect(Collectors.toList());
Здесь, как и по полной программе:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Test {
static class Mydata
{
private String name;
private int age;
public String getName() {return name;}
public int getAge() {return age;}
public Mydata(String name, int age)
{
this.name = name;
this.age = age;
}
}
public static void main(String[] args)
{
List<Mydata> data = Arrays.asList(new Mydata[] {new Mydata("Tom",10),new Mydata("Mary",20)});
//map(m->m.name) also works
List<String> nameList = data.stream().map(Mydata::getName).collect(Collectors.toList());
System.out.println(nameList);
}
}