У меня есть файл CSV, который я хотел бы хранить как объект Java. Я хотел бы, чтобы имя столбцов было первым измерением массива, а пара ключей знаменует второе измерение массива. Я пробовал разные решения (в основном LinkedHashMaps), но никто не работает должным образом.Многомерный запрос HashMap Array
CSV-выглядит следующим образом:
TimeStamp;Column 1;Column 2;Column3
1385733406;Value1;Value12;Value13
1385733409;Value21;Value22;Value23
1385733411;Value31;Value32;Value33
Я хотел бы массив выглядеть примерно так:
["Column 1"]
["1385733406","Value1"]
["1385733409","Value21"]
["1385733411","Value31"]
["Column 2"]
["1385733406","Value2"]
["1385733409","Value22"]
["1385733411","Value32"]
["Column 3"]
["1385733406","Value2"]
["1385733409","Value22"]
["1385733411","Value33"]
Таким образом, я смог бы запросить объект и восстановить все значения пары ключей из данного столбца, например, все данные из столбца 1. Использование HashMaps не работает, потому что они требуют двух аргументов, и это не похоже на правильный путь. Это код, который я мог бы придумать до сих пор, и я не думаю, что это правильный трек, но это все, что я мог придумать. Я использую OpenJDK 1.7
public class CsvCollection {
public Map<String,Map<String,Integer>> Results = new LinkedHashMap<String, Map<String,Integer>>();
public CsvCollection(){
}
public void parseCsvResultFile(File csvFile){
CSVReader reader = null;
List myEntries = null;
try {
reader = new CSVReader(new FileReader(csvFile.getAbsolutePath()), ';');
} catch (FileNotFoundException e) {
System.out.println("Error opening [], aborting parsing");
}
try {
myEntries = reader.readAll();
} catch (IOException e) {
System.out.println("Error reading content of CSV file (but file was opened)");
}
for(String header: (String[]) myEntries.get(0)){
Results.put(header, null);
// What now?
}
}
}
Выглядит нормально для меня. В основном это либо создание собственной пользовательской структуры данных с помощью POJO. Что заставляет вас думать, что это неправильное решение? – t0mppa
Я добавляю «Results.put (header, null»), поэтому я не уверен, что это сделает действительно многомерный массив. – Astaar