从对象列表的getter创建值列表

use*_*876 5 java list

好吧,让我们说我有一个非常简单的课程,例如

public class Baby {
   private String Name = "alf";
   public String getName() {
      return Name;
   }
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道.鉴于Baby的列表,在Java中是否有任何更简单/更酷/更短的方式来创建婴儿名字的阵列/ arraylist而不是简单地循环遍历所有婴儿并将他们的名字添加到新列表中?相当于:

ArrayList<Baby> babies = new ArrayList<Baby>();
/* some code adding a bunch of babies to the arraylist */

ArrayList<String> names = new ArrayList<String>();
for (Baby b : babies) {
  names.add(b.getName());
}
Run Code Online (Sandbox Code Playgroud)

......但更酷 明白我的意思了吗?

use*_*tbd 0

嗯...简单地说,不。

假设您正在寻找类似的东西

ArrayList<String> names = babies.getName();
Run Code Online (Sandbox Code Playgroud)

Java 中没有这样的东西。

但是,您可以创建一个新课程来为您完成此操作:

public class BabyNameifier {

    public BabyNameifier(){}

    public ArrayList<String> Nameify(ArrayList<Baby> babies) {
        ArrayList<String> names = new ArrayList<String>();
        for (Baby b : babies) {
            names.add(b.getName());
        }
        return names;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,你以后就可以说:

ArrayList<Baby> babies = new ArrayList<Baby>();
/* some code adding a bunch of babies to the arraylist */

BabyNameifier babyNameifier = new BabyNameifier();
ArrayList<String> names = babyNameifier.Nameify(babies);
Run Code Online (Sandbox Code Playgroud)

这将创造一种最酷的方式来系统地检索世界上已知的婴儿名字。