java - 将一个list按照下面字段分组后放入到一个新的list里面
天蓬老师
天蓬老师 2017-04-18 10:33:24
[Java讨论组]

像按以下格式展现内容

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
巴扎黑

不知道你的POJO对象叫啥,我自己取了一个名叫Project

@Getter
@Setter
@NoArgsConstructor
public class Project {
    private Integer uud;
    private String regCode;
    private String projectName;
    private String projectAddress;
    private String companyName;
    
    // 设置分组的key,这里就是把你想要分组的key拼起来
    public String groupKey(){
        return this.projectName + "_" + this.projectAddress + "_" + this.companyName;
    }
}

然后用Collectors.groupingBy方法就可以分组了,如下:

        List<Project> projects = new ArrayList<>();
        // 这里的key就是,宁江大院_成都市都江堰市蒲阳镇花溪村_成都文森电梯设备股份有限公司
        Map<String, List<Project>> group = projects.stream().collect(Collectors.groupingBy(Project::groupKey));

这里得到一个map,key就是刚拼起来的分组依据,value就是一个list,就是该分组下的集合


你这个展示是页面上的吧...map已经分好组了,你可以按照你页面的规则循环map就可以了噻...我这里只能根据我自己的创建的POJO对象来处理了


若是没有办法使用Java8,那就自己做一个类似的map的分类吧,类似下面的代码

        List<Project> projects = new ArrayList<>();
        Map<String, List<Project>> map = new HashMap<>();
        for (Project project: projects){
            String key = project.groupKey();
            // 按照key取出子集合
            List<Project> subProjects = map.get(key);
            
            // 若子集合不存在,则重新创建一个新集合,并把当前Project加入,然后put到map中
            if (subProjects == null){
                subProjects = new ArrayList<>();
                subProjects.add(project);
                map.put(key, subProjects);
            }else {
                // 若子集合存在,则直接把当前Project加入即可
                subProjects.add(project);
            }
        }
PHPz

你的分组后不知道是不是不重复 这些行 例如 SELECT projectName FROM 表名 GROUP BY projectName; 然后查出来的是一个resultSet 你实例化一个ArrayList 然后循环遍历 add到list中就好了 不知道我说的和你想的一样吗?

PHP中文网

Collection.sort(list,new Compararor<>(){

})

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号