This data is saved in data.txt I am trying to write a program that can arrange
18b0885 // this is the registration number, bullet points to show indentation
SS844 Parallel Algorithms // These are course taken by student
SS555 Calculus for Distributed Computing
SS501 Quantum Communication
17b0585
SS828 Problem Based Programming
SS660 Genetic Computation
SS567 Hacking Quantum Network
17b2582
SS567 Hacking Quantum Network
SS876 Positronics
SS880 Quark-based Logic
A big list of data like this, And need to write a program to short this data is ascending order by registration number and course will follow the registration number. so the expected out put is like this.
17b2582
SS567 Hacking Quantum Network
SS876 Positronics
SS880 Quark-based Logic
17b0585
SS828 Problem Based Programming
SS660 Genetic Computation
SS567 Hacking Quantum Network
18b0885
SS844 Parallel Algorithms
SS555 Calculus for Distributed Computing
SS501 Quantum Communication
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class Sort {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
Map<String, List<String>> map = new TreeMap<String, List<String>>();
String line = reader.readLine();//read header
while ((line = reader.readLine()) != null) {
String key = getField(line);
List<String> l = map.get(key);
if (l == null) {
l = new LinkedList<String>();
map.put(key, l);
}
l.add(line);
}
reader.close();
FileWriter writer = new FileWriter("sorted_numbers3.txt");
writer.write("");
for (List<String> list : map.values()) {
for (String val : list) {
writer.write(val);
writer.write("\n");
}
}
writer.close();
}
private static String getField(String line) {
return line.split(",")[0];//
}
}
The above program out puts into another text file like this
SS501 Quantum Communication
SS555 Calculus for Distributed Computing
SS567 Hacking Quantum Network
SS567 Hacking Quantum Network
SS660 Genetic Computation
SS828 Problem Based Programming
SS844 Parallel Algorithms
SS876 Positronics
SS880 Quark-based Logic
17b2582
17b0585
18b0885
It shorts all the coureses by ascending order then registration numbers but not what I want. What should I change?