如何使用OpenCSV基于某个id将多个单元格值映射到一个Javabean?

如何使用OpenCSV基于某个id将多个单元格值映射到一个Javabean?,java,csv,opencsv,Java,Csv,Opencsv,我有如下的csv数据 我正在使用注释将csv数据转换为java对象 我的Pojo类如下所示: public class TeamEntity { @CsvBindByName(column = "team_id") private String teamId; @CsvBindByName(column = "team_name") private String teamName; @CsvBind

我有如下的csv数据

我正在使用注释将csv数据转换为java对象

我的Pojo类如下所示:


public class TeamEntity {
    
    @CsvBindByName(column = "team_id")
    private String teamId;

    @CsvBindByName(column = "team_name")
    private String teamName;

    @CsvBindByName(column = "funds")
    private int fund;

    @CsvBindByName(column = "cars")
    private String carId;

    public TeamEntity() {
    }

    public TeamEntity(String teamId, String teamName, int fund, String carId) {
        this.teamId = teamId;
        this.teamName = teamName;
        this.fund = fund;
        this.carId = carId;
    }

    public String getTeamId() {
        return teamId;
    }

    public void setTeamId(String teamId) {
        this.teamId = teamId;
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public int getFund() {
        return fund;
    }

    public void setFund(int fund) {
        this.fund = fund;
    }

    public String getCarId() {
        return carId;
    }

    public void setCarIds(String carId) {
        this.carId = carId;
    }


}
        List<TeamEntity> teamEntities = new ArrayList<TeamEntity>();
        try(Reader reader = Files.newBufferedReader(Paths.get(uri))) {
            CsvToBean<TeamEntity> csvToBean = new CsvToBeanBuilder<TeamEntity>(reader)
            .withType(TeamEntity.class)
            .withIgnoreLeadingWhiteSpace(true)
            .build();
            teamEntities= csvToBean.parse();
        } catch (IOException e) {
            e.printStackTrace();
        }
我是这样装订的:


public class TeamEntity {
    
    @CsvBindByName(column = "team_id")
    private String teamId;

    @CsvBindByName(column = "team_name")
    private String teamName;

    @CsvBindByName(column = "funds")
    private int fund;

    @CsvBindByName(column = "cars")
    private String carId;

    public TeamEntity() {
    }

    public TeamEntity(String teamId, String teamName, int fund, String carId) {
        this.teamId = teamId;
        this.teamName = teamName;
        this.fund = fund;
        this.carId = carId;
    }

    public String getTeamId() {
        return teamId;
    }

    public void setTeamId(String teamId) {
        this.teamId = teamId;
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public int getFund() {
        return fund;
    }

    public void setFund(int fund) {
        this.fund = fund;
    }

    public String getCarId() {
        return carId;
    }

    public void setCarIds(String carId) {
        this.carId = carId;
    }


}
        List<TeamEntity> teamEntities = new ArrayList<TeamEntity>();
        try(Reader reader = Files.newBufferedReader(Paths.get(uri))) {
            CsvToBean<TeamEntity> csvToBean = new CsvToBeanBuilder<TeamEntity>(reader)
            .withType(TeamEntity.class)
            .withIgnoreLeadingWhiteSpace(true)
            .build();
            teamEntities= csvToBean.parse();
        } catch (IOException e) {
            e.printStackTrace();
        }
但是,我想合并具有相同团队id的行,并得到类似的结果

     String team_name;
     List<String> car_id;
     double funds;
String团队名称;
列出车号;
双重基金;

实现这一目标的最佳方式是什么?有没有办法使用注释来实现这一点?

没有OpenCSV注释来处理这种类型的“分组依据”功能。在我看来,最简单的方法是迭代您的
teamEntities
列表,并构建一个新的列表,收集沿途的车辆ID子列表。这将需要您创建一个新实体,其中
字符串car\u id
字段将替换为
列表car\u id
字段。在这个新类中,您也不需要任何setter,只需要getter。