我有一个列表
。我需要从Person
的属性获取列表
。
例如,我有一个Person
类:
class Person
{
private String name;
private String birthDate;
public String getName() {
return name;
}
public String getBirthDate() {
return birthDate;
}
Person(String name) {
this.name = name;
}
}
List<Person> personList = new ArrayList<>();
personList.add(new Person("David"));
personList.add(new Person("Joe"));
personList.add(new Person("Michel"));
personList.add(new Person("Barak"));
我想用stream
API获取一个名称列表,如下所示:
List<String> names = personList.stream().somecode().collect(Collectors.toList());
names.stream().forEach(System.out::println);
#David
#Joe
#Michel
#Barak
此代码不起作用:
public class Main
{
public static void main(String[] args)
{
List<Person> personList = new ArrayList<>();
Person person = new Person("Иван");
person.getFriends().addAll(Arrays.asList("Друг 1", "Друг 2", "Друг 3"));
personList.add(person);
person = new Person("Федор");
person.getFriends().addAll(Arrays.asList("Друг 4", "Друг 5", "Друг 6"));
personList.add(person);
person = new Person("Алексей");
person.getFriends().addAll(Arrays.asList("Друг 7", "Друг 8", "Друг 9"));
personList.add(person);
person = new Person("Константин");
person.getFriends().addAll(Arrays.asList("Друг 10", "Друг 11", "Друг 12"));
List<String> friens = personList.stream().map(e->e.getFriends()).collect(Collectors.toList());
friends.stream().forEach(System.out::println);
//Друг 1
//Друг 2
//Друг 3
//Друг 4
//...
}
}
class Person
{
String name;
List<String> friends;
Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public List<String> getFriends() {
return friends;
}
}
如何使用流
API获取属性的列表
?
您可以使用映射
:
List<String> names =
personList.stream()
.map(Person::getName)
.collect(Collectors.toList());
编辑:
为了组合好友姓名列表,您需要使用flatmap
:
List<String> friendNames =
personList.stream()
.flatMap(e->e.getFriends().stream())
.collect(Collectors.toList());
如何从对象列表中获得distinct(基于两个属性的distinct)列表。例如,让有一个带有属性名称和价格的对象列表。现在,我如何获得一个具有不同名称或价格的列表。 假设 然后在返回- n1,p1的price上运行filter 这不是预期的结果。
所以,在Clojure中,我可以这样说... 我得到了一个新的数据向量。 对于 Java 8 流,是否有一些简单的?例如,我在 上没有看到接受流的构造函数,也没有在 中看到某种帮助程序函数,也没有看到流接口。
我的列表包含像等大小相同的集合。我试过这样做,但似乎不起作用。 我想要的最终结果是。 我可以尝试在中添加所有元素,并对其进行排序,然后为创建一个新的
我有一个类具有以下签名: 我想将映射到在单个流中同时包含stringA和stringB的 或: 当然他们都不编译,但你明白了。 编辑: 示例:
假设我有员工数据列表。 使用上面的empList,如何获得两个不同的列表,如年龄
问题内容: 我有两个具有相同属性名称的java类。如何将所有属性复制到另一个装有数据的bean中。我不想使用传统形式来复制属性,因为我有很多属性。 提前致谢。 1班 2班 问题答案: 用途: