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

像按以下格式展现内容

天蓬老师
天蓬老师

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

répondre à tous(3)
巴扎黑

Je ne sais pas comment s'appelle votre objet POJO, je l'ai moi-même nommé 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;
    }
}

Utilisez ensuite la méthode Collectors.groupingBy pour regrouper, comme suit :

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

Ici, nous obtenons une carte, la clé est la base de regroupement que nous venons de mettre en place, et la valeur est une liste, qui est la collection sous le regroupement


Votre affichage est sur la page, à droite... La carte a été divisée en groupes, vous pouvez simplement parcourir la carte selon les règles de votre page... Je ne peux le faire qu'en fonction des objets POJO que je créé. Géré


S'il n'y a aucun moyen d'utiliser Java8, effectuez vous-même une classification de carte similaire, similaire au code suivant

        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);
            }
        }
PHPzhong

Je ne sais pas si ces lignes ne sont pas répétées après votre regroupement. Par exemple, SELECT projectName FROM table name GROUP BY projectName; vous instanciez ensuite une ArrayList et vous la parcourez. ajoutez-le à la liste, je ne sais pas. Cela ressemble-t-il à ce que vous pensiez ?

洪涛

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

})

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal