Я пытаюсь отсортировать по убыванию следующий CSV на основе значений, содержащихся в трех столбцах (url, priority, length), так же, как order by
в языке SQL было выполнено
Начальный CSV следующий:
url;review;priority;length
1610-bagel-torino;"Ingredienti di qualità.";0;15
1610-bagel-torino;"Il personale è molto gentile.";1;7
7-nani-torino;"Farina buonissima.";0;14
1610-bagel-torino;"Posto carino.";0;9
7-nani-torino;"Arredamento semplice.";1;9
И я хочу получить
url;review;priority;length
7-nani-torino;"Arredamento semplice.";1;9
7-nani-torino;"Farina buonissima.";0;14
1610-bagel-torino;"Il personale è molto gentile.";1;7
1610-bagel-torino;"Ingredienti di qualità.";0;15
1610-bagel-torino;"Posto carino.";0;9
Я начал с этого кода, но сортировал по убыванию только по столбцам URL и приоритетов.
ArrayList<String> list = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader("contexts_file/matching/lessico_frasi/"+context+"_ranking.csv"));
String line = "";
while ((line = br.readLine()) != null) {
String[] arr = line.split(";");
list.add(arr[0]+","+arr[2]+","+arr[3]);
}
Collections.sort(list);
Collections.reverse(list);
list.forEach(i -> System.out.println(i));
С этим кодом вывод будет следующим:
url;review;priority;length
7-nani-torino;"Arredamento semplice.";1;9
7-nani-torino;"Farina buonissima.";0;14
1610-bagel-torino;"Il personale è molto gentile.";1;7
1610-bagel-torino;"Posto carino.";0;9
1610-bagel-torino;"Ingredienti di qualità.";0;15
Последние две строки должны быть обращены