Pessoal, boa tarde.
Não estou conseguindo resolver um problema, parece bobo, mas não estou.
Seguinte: tenho um arquivo CSV com ids dos cursos e na frente os ids das disciplinas.
Quero agrupar as disciplinas de acordo com o id do curso.
Por exemplo:
id curso = 1, disciplinaX, disciplinaY, disciplinaWWW
id cursos = 2, disciplinaX, disciplina WWWW
…
O problema é que no meu CSV as linhas repetem o valor do id do curso, ou seja, para cada disciplina do curso, tem uma linha nova, preciso agrupar.
Tentei fazer com Map, mas não estou conseguindo evoluir.
Segue meu codigo, se alguem conseguir me ajudar, agradeço muito:
PrintWriter dataSetDisciplinesPrint = new PrintWriter(this.createDataSetFile(file.getParent(), "dataSet1"), true);
//Começa a leitura dos arquivos enviados
FileReader freader = new FileReader(file.getAbsolutePath());
Scanner sc = new Scanner(freader);
//Cria um Map que irá gravar o id do Currículo (key value) e as suas respectivas disciplinas sem seguida
//No MAP o key value não pode ser repetido, então basta inserir os ids dos currículos nessa posição
//Como algumas disciplinas podem ter mais de um pré-requisito, então alguns ids de disciplinas podem se repetir, por isso a segunda posição do Map recebe um HashSet (que não aceita valores repetidos)
Map<String, HashSet> idCurriculo_Disciplinas = new HashMap<String, HashSet>();
//HahsSet que irá receber os ids das disciplinas de cada currículo
HashSet<String> idsDisciplinas = new HashSet<String>();
String idCurr = null;
String idDisc = null;
while (sc.hasNextLine()) { //Lendo o arquivo
String line = sc.nextLine();
String[] fields = line.split(";");
idCurr = fields[0];
idDisc = fields[1];
idCurriculo_Disciplinas.put(idCurr, idsDisciplinas); //Aqui que não sei o que fazer
System.out.println(idCurriculo_Disciplinas);
}
dataSetDisciplinesPrint.flush();
dataSetDisciplinesPrint.close();
Já tentei de tudo, com MAP e sem MAP, sem HashSet. Já tentei com Pattern e Matcher. Enfim, não sei como resolver isso. Se alguém puder me dar algumas dicas.