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

编程教程 > Java (2578) 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 ...
取出属性为集合List&lt;String&gtl; stateNameList = dictEntityList.stream().map(DictEntity::getName).colle...
本文主要讲解通过使用 Stream.concat() 方法 去合并两个stream,新的stream由原来的两个stream所有元素组成(相同元素会覆盖)
java 8 stream 多字段排序,本例子主要使用stream进行多个字段的排序,使用了 comparators和Comparator.thenComparing()方法。比较器之间返回一个...
简介本博文主要讲解在Java 8中 如何通过stream流的方式去重
测试字符串在集合中出现的次数,通过stream的Collectors.counting()来实现publicstaticvoidmain(String[]args){List&lt;String...
java stream 按月(日期Date)分组统计首先是上一个简单的数据模型@Data @NoArgsConstructor @AllArgsConstructor public class ...
//声明一个List集合List&lt;Person&gtl; list = new ArrayList();           list.add(new Person("1001", "小A...
javastreamList根据对象某个属性升序或降序排序代码参考;publicclassMyTests{@NoArgsConstructor@AllArgsConstructor@Datapu...
首先,数据结构。这只是一个简单的橄榄球运动员,有名字和评级。class RugbyPlayer { private String name; private Integer ra...
1.通过文件名查找文件语法:sudo find 目录 -name '*特定字符串*'sudo 根据查询文件目录归属看是否加示例:find ./ -name '*
java 面向对象编程,什么是面向对象,面向对象思想。本文将会以上帝对话的方式向你讲述面向对象的来由。为啥会有面向对象的出现。面向对象解决了那些问题。
jdk8新特性流的使用
notepad++ 正则批量替换某些内容(替换内容包含换行的情况)查找内容参考: &lt;div class="tabler-icon"&gtl; &lt;i class="ti