findFirst 表示匹配到第一个满足条件的值就返回,demo 如下:
// 找到第一个叫小美同学的 ID@Testpublic void testFindFirst(){Long id = students.stream().filter(s->StringUtils.equals(s.getName(),"小美"))// 同学中有两个叫小美的,这里匹配到第一个就返回.findFirst().get().getId();log.info("testFindFirst 小美同学的 ID {}",id);// 防止空指针Long id2 = students.stream().filter(s->StringUtils.equals(s.getName(),"小天")).findFirst()// orElse 表示如果 findFirst 返回 null 的话,就返回 orElse 里的内容.orElse(new StudentDTO()).getId();log.info("testFindFirst 小天同学的 ID {}",id2);Optional<StudentDTO> student= students.stream().filter(s->StringUtils.equals(s.getName(),"小天")).findFirst();// isPresent 为 true 的话,表示 value != null,即 student.get() != nullif(student.isPresent()){return;}log.info("testFindFirst 找不到名为小天的同学");}
运行结果如下:
