一、Stream通过findFirst()查找满足条件的一条数据

如果取得第一个元素,则用findFirst()
最后提取元素的时候,可以用:get或者orElse(null)
这里要注意的是,规范用法是orElse(null)

    @Test
    void test1() {
        ArrayList<People> peopleList = Lists.newArrayList();
        peopleList.add(new People(1, "小王", 1));
        peopleList.add(new People(3, "小李", 3));
        peopleList.add(new People(2, "小张", 2));
        peopleList.add(new People(4, "小皇", 4));
        People people = peopleList.stream().filter(c -> c.getJgid() % 2 == 0).findFirst().orElse(null);
        System.out.println(people);

StreamfindFirst方法在此流中查找第一个元素作为 Optional

如果流中没有元素, findFirst 返回空的 Optional

如果流没有顺序,那么 findFirst 可以选择任何元素。

如果 findFirst 选择的元素为null,它将抛出 NullPointerException

package com.concretepage;
import java.util.stream.Stream;
public class FindFirstDemo4 {
  public static void main(String[] args) {
	Stream.of(null, "A").
	    findFirst().ifPresent(s -> System.out.println(s));

输出将为NullPointerException。

  1. 偷偷点灯的夜晚,铺满对未来的渴望。
  2. 我生来就是高山而非溪流,我欲于群峰之巅俯视平庸的沟壑。
  3. 我们可以确定的是,集中在我们擅长的事情上是更让人愉悦的。
  4. 每件事到最后一定会变成—件好事,如果不是,说明还没到最后。
  5. 凡心所向,素履以往,生如逆旅。
  6. 未曾谋面的也将终会相遇,慢慢来,慢慢约会吧。
  7. 外面不像你想的那么好,风雨都要自己挡;愿每个独自走夜路的你都足够坚强。
  8. 秋天也很好,桂花会开,空气会香甜,我们会变好,一切充满希望,温柔又热烈。
  9. 有种落差是,你配不上自己的野心,也辜负了所受的苦难。
  10. 清醒温柔知进退,努力上进且优秀。
Stream的findFirst方法在此流中查找第一个元素作为Optional。 如果流中没有元素,findFirst返回空的Optional。 如果流没有顺序,那么findFirst可以选择任何元素。 如果findFirst选择的元素为null,它将抛出NullPointerException。 在javadoc中的findFirst声明 Optional<T> findFirst() 返回:findFirst方法返回Optional包含流中第一个元素的元素。 异常:如果选择null值,f
List<String> list = Arrays.asList("a","b","c","d","e","f","g"); Optional<String> opt = list.stream().findFirst(); Syste...
解决cmd运行java程序时报错Error: could not open `C:\Program Files\Java\jre1.8.0_271\lib\amd64\jvm.cfg‘ 程序员:浮华如梦: SQL 数据汇总与透视的实用案例 CSDN-Ada助手: 推荐 MySQL入门 技能树:https://edu.csdn.net/skill/mysql?utm_source=AI_act_mysql 解决cmd运行java程序时报错Error: could not open `C:\Program Files\Java\jre1.8.0_271\lib\amd64\jvm.cfg‘ weixin_57789823: 关闭cmd 就需要重新再来一遍 SQL Server 分页查询的学习文章 ha_lydms: 文章内容通俗易懂,大大提高了我对这个话题的理解。每次都能学到很多新知识,感谢博主的用心分享。期待更多精彩的内容! Java8的stream之groupingBy()分组排序 m0_57943112: groupBy默认的返回对象是 HashMap, 他不是默认升序的 peopleList.add(new People(1, "2021", 5)); peopleList.add(new People(1, "2021", 4)); peopleList.add(new People(2, "2022", 3)); peopleList.add(new People(2, "2022", 2)); peopleList.add(new People(2, "2022", 1)); 试试这个,根据name 分组,倒序的