【问题标题】:Generate array from existing object's attribute从现有对象的属性生成数组
【发布时间】:2016-07-23 20:58:44
【问题描述】:

假设我们有这个类:

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

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

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

由于某些依赖项,我无法使用 Java 8。

【问题讨论】:

  • 谷歌:Java 流图
  • “我们可以通过迭代轻松做到这一点,但要寻找最有效的方法。”最高效是指更少的代码还是性能方面的?因为即使您可以使用 Java8 的 map-streams 使其成为单线,它仍然会在幕后进行循环。
  • 实际上正在寻找性能更好的解决方案。

标签: java arrays collections sub-array


【解决方案1】:

使用 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))。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 2012-06-24
    • 1970-01-01
    相关资源
    最近更新 更多