Java 从csv加载并使用包含多个值的键存储在HashMap中
我有一个hashmap,它存储csv文件中的值。该文件由三列组成:模板名称、参数1、参数2 我一直在尝试使用TEMPLATE_NAME作为键,PARM_1,PARAM_2作为每行的值。问题是可能有许多模板名称具有不同的参数组合。我的要求规定,当选择参数1和参数2时,应显示模板名称列表 我知道hashmap不能有重复的键,因此hashmap只创建一个带有值的模板名称键,而忽略重复项。我如何解决这个问题Java 从csv加载并使用包含多个值的键存储在HashMap中,java,data-structures,hashtable,Java,Data Structures,Hashtable,我有一个hashmap,它存储csv文件中的值。该文件由三列组成:模板名称、参数1、参数2 我一直在尝试使用TEMPLATE_NAME作为键,PARM_1,PARAM_2作为每行的值。问题是可能有许多模板名称具有不同的参数组合。我的要求规定,当选择参数1和参数2时,应显示模板名称列表 我知道hashmap不能有重复的键,因此hashmap只创建一个带有值的模板名称键,而忽略重复项。我如何解决这个问题 private void load() throws IOException{
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());
}
}
private void load()引发IOException{
CsvReader reader=新的CsvReader();
列表行=reader.parse(csvFile);
对于(int i=1;i
问题是可能有许多模板名称具有不同的参数组合
创建一个表示模板名称并包含PARM_1、PARAM_2的列表或映射的新类
使用嵌套的数据结构。例如,在映射中嵌套一个映射:外键是模板名称,内键是参数1