List对象1对多去重

package com.zfsoft.qqhr.test;

import java.util.Arrays;

public class Student {
    private String attrId;
    private String[] fileUnidList;

    public String getAttrId() {
        return attrId;
    }

    public void setAttrId(String attrId) {
        this.attrId = attrId;
    }


    public String[] getFileUnidList() {
        return fileUnidList;
    }

    public void setFileUnidList(String[] fileUnidList) {
        this.fileUnidList = fileUnidList;
    }

    @Override
    public String toString() {
        return "Student{" +
                "attrId='" + attrId + '\'' +
                ", fileUnidList=" + Arrays.toString(fileUnidList) +
                '}';
    }
}
package com.zfsoft.qqhr.test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class RemoveRepate {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();
        Student student = new Student();
        student.setAttrId("1001");
        List<String> fileUniedList= new ArrayList<>();
        fileUniedList.add("002");
        student.setFileUnidList((String[]) fileUniedList.toArray(new String[0]));

        Student student2 = new Student();
        student2.setAttrId("1001");
        List<String> fileUniedList2= new ArrayList<>();
        fileUniedList2.add("003");
        student2.setFileUnidList((String[]) fileUniedList2.toArray(new String[0]));

        Student student3 = new Student();
        student3.setAttrId("1001");
        List<String> fileUniedList3= new ArrayList<>();
        fileUniedList3.add("004");
        student3.setFileUnidList((String[]) fileUniedList3.toArray(new String[0]));

        Student student4 = new Student();
        student4.setAttrId("2001");
        List<String> fileUniedList4= new ArrayList<>();
        fileUniedList4.add("005");
        student4.setFileUnidList((String[]) fileUniedList4.toArray(new String[0]));

        Student student5 = new Student();
        student5.setAttrId("2001");
        List<String> fileUniedList5= new ArrayList<>();
        fileUniedList5.add("006");
        student5.setFileUnidList((String[]) fileUniedList5.toArray(new String[0]));

        Student student6 = new Student();
        student6.setAttrId("3001");
        List<String> fileUniedList6= new ArrayList<>();
        fileUniedList6.add("007");
        student6.setFileUnidList((String[]) fileUniedList6.toArray(new String[0]));

        students.add(student);
        students.add(student2);
        students.add(student3);
        students.add(student4);
        students.add(student5);
        students.add(student6);
        for(int i =0;i<students.size()-1;i++){
            for(int j=students.size()-1;j>i;j--){
                if(students.get(i).getAttrId().equals(students.get(j).getAttrId())){
                    List<String> unidFiles=new ArrayList<>();
                    String[] fileUnidList = students.get(i).getFileUnidList();
                    for (String unid: fileUnidList) {
                        unidFiles.add(unid);
                    }
                    String s = students.get(j).getFileUnidList()[0];
                    unidFiles.add(s);
                    students.get(i).setFileUnidList((String[])unidFiles.toArray(new String[0]));
                    students.remove(j);
                }
            }
        }

        System.out.println(students.toString());
    }
}

结果

Student{attrId='1001', fileUnidList=[002, 004, 003]}, 
Student{attrId='2001', fileUnidList=[005, 006]}, 
Student{attrId='3001', fileUnidList=[007]}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值