假设我有一个汽车列表:
public class Car {
private String brand;
private String name;
private String color;
public Car() { // ... }
public getName() { return name; }
// ...
}
Run Code Online (Sandbox Code Playgroud)
// Suppose that I have already init the list of car
List<Car> cars = //...
List<String> names = new ArrayList<String>();
for (Car c : cars ) {
names.add(c.getName());
}
Run Code Online (Sandbox Code Playgroud)
如何缩短上面的代码?简而言之,如何在List的每个元素上调用方法?
例如,在Python中:
[car.name for car in cars]
Run Code Online (Sandbox Code Playgroud) 这可能很简单,但我无法在文档中找到它.我有一个人课
class BasicPerson {
private String name;
private int age;
private Date birthDate;
// getters/setters omitted
}
Run Code Online (Sandbox Code Playgroud)
以及它的清单
ArrayList<Person>
Run Code Online (Sandbox Code Playgroud)
我想改变它们以改变它们
ArrayList<PersonDTO>
Run Code Online (Sandbox Code Playgroud)
但没有明确的循环.有没有办法使用MapperFacade.map列表列出一行转换?
我有一个对象集合如下:
Collection<Foo>
Run Code Online (Sandbox Code Playgroud)
哪里Foo
public class Foo {
private User user;
private Item item;
public Foo(User user, Item item) {
this.user = user;
this.item = item;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Item getItem() {
return item;
}
public void setItem(Item item) {
this.item = item;
}
}
Run Code Online (Sandbox Code Playgroud)
我想Collection<Item>使用返回另一个类型的集合Collection<Foo>。我可以通过使用 afor loop并循环 Collection,获取项目并将其添加到新列表中来做到这一点。到目前为止,我已经使用 Google Guava 创建了 usingCollection<Foo>谓词。
Google guava 中是否有方法/函数允许我创建 …
是否有更短的方法从其他列表创建子列表?例如:我有一个Contactobiect,这个obiect包含的String字段adres
public List<String> getAdreses(long personID) {
List<String> adreses=null;
for(Contact mail : getContacts(personID)){
adreses.add(mail.getMail());
}
return adreses;
}
Run Code Online (Sandbox Code Playgroud)