【发布时间】:2019-04-29 10:11:37
【问题描述】:
我正在编写代码以按年龄对人员列表进行排序,并将其作为最旧的前缀并打印出来
定义的对象列表:
Person person1 = new Person(40,"John", "Smith");
Person person2 = new Person(45,"Mike", "Well");
Person person3 = new Person(68,"Bob", "Parks");
Person person4 = new Person(49,"Leon", "Foo");
Person person5 = new Person(30,"Christian", "Markus");
List<Person> personList = new ArrayList<>();
personList.add(person1);
personList.add(person2);
personList.add(person3);
personList.add(person4);
personList.add(person5);
我可以对其进行排序和添加前缀,但问题是获取第一项并将其打印出来
List<Person> orderedPersonAge = personList
.stream()
.sorted(Comparator.comparing(Person::getAge).reversed())
.map(s-> new
Person(s.getAge(),"Super"+s.getName(),s.getSureName()))
.collect(Collectors.toList());
System.out.println(orderedPersonAge);
我尝试使用 findFirst() ...
不同的方法是按年龄排序,取最旧的,然后添加前缀...
【问题讨论】:
-
I tried play with findFirst()- 你的问题是什么? -
在可选的 ifPresent 上失败,我认为也需要包括在内
标签: java sorting lambda java-stream