本站消息

站长简介/公众号


站长简介绍:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群.欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

从 csv 加载并存储在 HashMap 中,键包含多个值

发布于2022-05-30 07:29     阅读(1043)     评论(0)     点赞(22)     收藏(5)


我有一个哈希图,它存储来自 csv 文件的值。该文件由三列组成:TEMPLATE_NAME、PARAM_1、PARAM_2

我一直在尝试使用 TEMPLATE_NAME 作为键,使用 PARM_1、PARAM_2 作为每一行的值。问题是可能有许多 TEMPLATE_NAME 具有不同的参数组合。我的要求指定选择param_1和param_2时应显示template_name的列表。

我知道哈希图不能有重复的键,所以哈希图只创建一个带有值的 TEMPLATE_NAME 键,但忽略重复项。我该如何解决这个问题?

private void load() throws IOException{
        CsvReader reader = new CsvReader();
        List<List<String>> rows = reader.parse(csvFile);

    for (int i = 1 ; i<rows.size() ; i++){
        List<String> columns = rows.get(i);
        String templateName = columns.get(TEMPLATE_NAME);

        OnConfig config = entries.get(templateName);
        if (config == null){
            config = new OnConfig(templateName);
            entries.put(templateName, config);
        }

        config.put(columns.get(PARAM_1), columns.get(PARAM_2));

    }
}



public class OnConfig {

    private final String templateName;

    private final HashMap<String, String> attributes = new HashMap<>();

    public OnConfig(String templateName){
        this.templateName= templateName;
    }

    public void put(String param1, String param2){
        attributes.put(param1, param2);
    }

    public String get(String param1){
        return attributes.get(param1);
    }

    public String getTemplateName() {
        return templateName;
    }

    @Override
    public String toString() {
        return String.format("Template Name: %s, Number of Attributes: %s", getTemplateName(), attributes.value());
    }
}

解决方案


问题是可能有许多 TEMPLATE_NAME 具有不同的参数组合。

  1. 创建一个表示 TEMPLATE_NAMES 并包含 PARM_1、PARAM_2 的列表或映射的新类

  2. 使用嵌套数据结构。例如,在 Map 中嵌套一个 Map:外键是 TEMPLATE_NAMES,内键是 PARAM_1

站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群.
欢迎关注我的公众号:程序员总部,关注公众号回复java,免费领取 全套java视频教程,关注公众号回复java充值+你的账号,免费为您充值1000积分



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/442917/af9f762d720812bcbda0/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)