对对象流进行排序并首先获取并打印出来

我正在编写代码以按年龄对人员列表进行排序,并为最旧的人添加前缀并打印出来


定义的对象列表:


    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() ...


不同的方法是按年龄排序,取最旧的,然后添加前缀......


千万里不及你
浏览 141回答 2
2回答

慕慕森

你可以做Person&nbsp;orderedPersonAge&nbsp;&nbsp;=&nbsp;personList &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.sorted(Comparator.comparing(Person::getAge).reversed()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(s->&nbsp;new&nbsp;Person(s.getAge(),"Super"+s.getName(),s.getSureName())) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.toList()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.get(0); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(orderedPersonAge);或者Person&nbsp;orderedPersonAge&nbsp;&nbsp;=&nbsp;personList &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.sorted(Comparator.comparing(Person::getAge).reversed()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(s->&nbsp;new&nbsp;Person(s.getAge(),"Super"+s.getName(),s.getSureName())) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.findFirst() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.get(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(orderedPersonAge);

一只萌萌小番薯

你可能只是在寻找personList.stream() &nbsp;&nbsp;&nbsp;.max(Comparator.comparing(Person::getAge))&nbsp;//&nbsp;solves&nbsp;for&nbsp;sort&nbsp;with&nbsp;reverse&nbsp;and&nbsp;find&nbsp;first &nbsp;&nbsp;&nbsp;.map(s&nbsp;->&nbsp;new&nbsp;Person(s.getAge(),&nbsp;"Super"&nbsp;+&nbsp;s.getName(),&nbsp;s.getSurname()))&nbsp;//&nbsp;map&nbsp;if&nbsp;present &nbsp;&nbsp;&nbsp;.ifPresent(System.out::println);&nbsp;//&nbsp;print&nbsp;the&nbsp;mapped&nbsp;output&nbsp;if&nbsp;present
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java