cari

Rumah  >  Soal Jawab  >  teks badan

java - 将一个list按照下面字段分组后放入到一个新的list里面

像按以下格式展现内容

天蓬老师天蓬老师2889 hari yang lalu631

membalas semua(3)saya akan balas

  • 巴扎黑

    巴扎黑2017-04-18 10:35:24

    Saya tidak tahu apa nama objek POJO anda, saya menamakannya sendiri Projek

    @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;
        }
    }

    Kemudian gunakan kaedah Collectors.groupingBy untuk mengumpulkan, seperti berikut:

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

    Kami mendapat peta di sini, kuncinya ialah asas pengelompokan yang baru kami susun, dan nilainya ialah senarai, iaitu koleksi di bawah pengelompokan


    Paparan anda ada di halaman, kan... Peta telah dibahagikan kepada kumpulan, anda hanya boleh mengitari peta mengikut peraturan halaman anda... Saya hanya boleh melakukannya berdasarkan objek POJO yang saya dibuat. Dikendalikan


    Jika tiada cara untuk menggunakan Java8, maka buat sendiri klasifikasi peta yang serupa, serupa dengan kod berikut

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

    balas
    0
  • PHPz

    PHPz2017-04-18 10:35:24

    Saya tidak tahu sama ada baris ini tidak berulang selepas pengelompokan anda Contohnya, PILIH nama projek DARI nama jadual GROUP BY projectName dan yang ditemui ialah resultSet dan kemudian gelungkannya dan tambahkannya ke senarai itu. Saya tidak tahu.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:35:24

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

    })

    balas
    0
  • Batalbalas