Java stream 筛选集合中的唯一对象出来

演示数据模型

@AllArgsConstructor
@NoArgsConstructor
@Data
public class UserInfo {
    @NotNull(groups = {Update.class},message = "请填写id信息")
    private Long id;
    @NotEmpty(groups = {Add.class,Update.class},message = "请填写用户名称")
    private String name;
}
 

演示示例

public class StreamTest {

   static List<UserInfo> userInfoList=new ArrayList<>();
   static {
        userInfoList.add(new UserInfo(1L,"张三"));
       userInfoList.add(new UserInfo(2L,"李四"));
       userInfoList.add(new UserInfo(3L,"张五"));
   }

    public static void main(String[] args) {
       //查找赛选结果的第一个,如果赛选结果不存在则返回null
       UserInfo find1 = userInfoList.stream().filter(o -> Objects.equals(o.getId(), 1L)).findFirst().orElse(null);
        System.out.println(find1);
       UserInfo find2 = userInfoList.stream().filter(o -> o.getName().contains("张")).findFirst().orElse(null);
        System.out.println(find2);
       UserInfo find3 = userInfoList.stream().filter(o -> o.getName().contains("王")).findFirst().orElse(null);
        System.out.println(find3);

    }

}

运行结果:
UserInfo(id=1, name=张三)
UserInfo(id=1, name=张三)
null
所有操作均按需求实现了


 

评论区域