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

编程教程 > Java (2561) 2024-11-26 14:39:04
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
所有操作均按需求实现了


 

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Java stream 筛选集合中的唯一对象出来演示数据模型@AllArgsConstructor @NoArgsConstructor @Data public class UserInfo ...
本文主要讲解通过使用 Stream.concat() 方法 去合并两个stream,新的stream由原来的两个stream所有元素组成(相同元素会覆盖)
简介本博文主要讲解在Java 8中 如何通过stream流的方式去重
java 8 stream 多字段排序,本例子主要使用stream进行多个字段的排序,使用了 comparators和Comparator.thenComparing()方法。比较器之间返回一个...
取出属性为集合List&lt;String&gtl; stateNameList = dictEntityList.stream().map(DictEntity::getName).colle...
java stream 按月(日期Date)分组统计首先是上一个简单的数据模型@Data @NoArgsConstructor @AllArgsConstructor public class ...
首先,数据结构。这只是一个简单的橄榄球运动员,有名字和评级。class RugbyPlayer { private String name; private Integer ra...
//声明一个List集合List&lt;Person&gtl; list = new ArrayList();           list.add(new Person("1001", "小A...
javastreamList根据对象某个属性升序或降序排序代码参考;publicclassMyTests{@NoArgsConstructor@AllArgsConstructor@Datapu...
jdk8新特性流的使用
MultipartFile 对象创建,某些时候我们需要创建MultipartFile 对象,用于参数传递。这里讲解下如何创建MultipartFile 对象
首先定义一个包含字符串日期的数据对象​public class ObjectDto implements Serializable { private static final long...
java 面向对象编程,什么是面向对象,面向对象思想。本文将会以上帝对话的方式向你讲述面向对象的来由。为啥会有面向对象的出现。面向对象解决了那些问题。
如何支持直接传递自定义对象那么我们希望能有一种方式保持跟controller完全一致只需要传递自定义的对象,既让服务提供端开发人员爽,也让服务消费端开发人员爽,
Java 11(2018 年 9 月发布)包含许多重要且有用的更新