从现有对象的属性生成数组

Generate array from existing object's attribute

假设我们有这个 class:

public class Person
{
    public String name;
    public String lastname;
}

假设我们有那个 Person class 的集合。如何生成仅包含 lastnames 的新字符串集合?

我们可以通过迭代轻松地做到这一点,但我正在寻找最有效的方法。

由于某些依赖关系,我无法使用 Java 8.

使用 for 循环并使用正确的大小初始化目标集合:

String[] lastnames = new String[persons.size()]; // or new ArrayList(persons.size()), ...
for(int i=0;i<persons.size();i++){
    lastnames[i] = persons.get(i).getLastName();
}

如果在两个集合(人员和姓氏)中都可以直接访问,这将是高效的 (O(n))。