明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
随笔 - 1277, 文章 - 0, 评论 - 214, 阅读 - 320万
  博客园  :: 首页  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

在Java中,你可以使用Stream API来过滤List<JSONObject>并取值。以下是一个简单的例子,演示如何过滤并取出符合条件的JSONObject中的值。

复制代码
List<mattchartsResult> mattchartsResultList = mattProblemService.queryCharts(hasButtonCodePerm, loginUser.getId());
        if(mattchartsResultList != null && mattchartsResultList.size() >0) {
            List<String> Ids = mattchartsResultList.stream().map(mattchartsResult::getName).collect(Collectors.toList());

            System.out.println("Ids>>>" + Ids.toString());

            List<JSONObject> listUserByUserIdList = loginUserApi.listUserByUserIdList(Ids);

            System.out.println("listUserByUserIdList.size()>>>" + listUserByUserIdList.size());

            mattchartsResultList.forEach(item -> {

            if (listUserByUserIdList!=null) {
                String proName= listUserByUserIdList.stream().filter(jsonObject -> jsonObject.getStr("id").equals(item.getName())).map(j->{return j.getStr("name");}).collect(Collectors.joining(","));
                item.setName(proName);
            }
            });
        }
复制代码

 

复制代码
        // 假设我们有一个包含JSONObject的List
        List<JSONObject> jsonList = // ... 初始化列表
 
        // 过滤列表,只保留键"key"值为"value"的JSONObject
        List<JSONObject> filteredList = jsonList.stream()
            .filter(json -> "value".equals(json.opt("key")))
            .collect(Collectors.toList());
 
        // 取出过滤后JSONObject的特定值
        List<String> values = filteredList.stream()
            .map(json -> json.optString("targetKey"))
            .collect(Collectors.toList());
 
        // 打印取得的值
        values.forEach(System.out::println);
复制代码

 

1、从中筛选出小于20的学生们组成一个新的集合

List<Student> list = students.stream().filter(student -> student.getAge() < 20).collect(Collectors.toList());

 

1.2、去重 distinct
distinct()它会返回一个元素各异(根据流所生成元素的 hashCode和equals方法实现)的流。

List<Student> collect = students.stream().distinct().collect(Collectors.toList());
collect.forEach(System.out::println);

 

3、选出集合中前五位同学 组成一个新的集合

List<Student> collect = students.stream().limit(5).collect(Collectors.toList());

 

4、从第二个同学开始组成新的集合

List<Student> collect = students.stream().skip(2).collect(Collectors.toList());
collect.forEach(System.out::println);

 

5、给这群学生按年龄排序

List<Student> collect = students.stream()
                 .sorted((student1, student2) -> student1.getAge() - student2.getAge())
                 .collect(Collectors.toList());
collect.forEach(System.out::println);

 

6、我要去这一群学生中找到 年龄在 20 岁以下,分数在90分以上的前3名学生。

List<Student> collect = students.stream()
                 .filter(student -> student.getAge() < 20)
                 .filter(student -> student.getScore() > 90.0)
                 .limit(3)
                 .collect(Collectors.toList());
collect.forEach(System.out::println);

 

二、映射 map

List<String> collect1 = students.stream()
         .map(student -> student.getName())
         .distinct()
         .collect(Collectors.toList());
collect1.forEach(System.out::println);

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2021-12-02 windows mysql 密码忘了怎么办
2020-12-02 tomcat正常运行一段时间后,突然访问不了项目了, 其它根页面报404错误
2009-12-02 Jquery:Ajax解析XML数据(同步及异步调用)
2007-12-02 MSN 、QQ 的临时对话代码。。。。。。。。。。。。。。。。。。。。
点击右上角即可分享
微信分享提示