import java.io.*;
import java.util.*;
public class Sort {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader("data1.csv"));
Map<String, String> map=new TreeMap<String, String>();
String line="";
while((line=reader.readLine())!=null){
map.put(getField(line),line);
}
reader.close();
FileWriter writer = new FileWriter("sorted_numbers.txt");
for(String val : map.values()){
writer.write(val);
writer.write('\n');
}
writer.close();
}
private static String getField(String line) {
return line.split(",")[0];//extract value you want to sort on
}
}
Привет, я пытаюсь прочитать несортированный файл и заставить Java отсортировать один столбец файла данных csv и распечатать эти результаты в новом файле. Я позаимствовал это решение, когда искал на этом веб-сайте, потому что я думаю, что оно идеально подходит для того, что я пытаюсь сделать. У меня есть 282 строки данных в виде
UserID, Module, Mark
Ab004ui, g46PRo, 54
cb004ui, g46GRo, 94
gy004ui, g46GRo, 12
ab004ui, g46PRo, 34
это в файле csv. когда я использую приведенный выше код, он дает мне только одну строку в sorted_marks.txt, например
ab004ui, g46PRo, 34
и я считаю, что это даже не отсортировано.
Я хочу, чтобы все результаты из нового файла были отсортированы на основе их идентификатора пользователя и ничего больше, но я не могу заставить его работать, пожалуйста, любая помощь будет благодарна
containsKey(key)
), если он уже есть, я вызываюcontainsKey(key+"_001")
,containsKey(key+"_002")
... в блоке while. Когда я не нахожу такого ключа, я звонюput(key+"_003", value)
. Вместо _ вы можете использовать пробел или символ, которого, как вы знаете, не будет ни в одном идентификаторе пользователя. Этот метод может быть не оптимальным, особенно когда у вас много данных, но, по крайней мере, он работает. - person True Soft   schedule 12.12.2009Multimap
коллекций Google. - person True Soft   schedule 12.12.2009Multimap
очень просто: сначала загрузите банку с code.google.com/p/google-collections< /а> . Когда вы помещаетеMultimap
объектов с одним и тем же ключом, он фактически сохраняет список объектов для этого ключа. Затем вы используете методasMap()
, который вернетMap<String, Collection<String>
. - person True Soft   schedule 12.12.2009