を並べ替え:私は、このCSVファイルを持っCSVRecordsのリスト(Apacheのコモンズ)
@Override
public void sort(InputStream in, OutputStream out, String field_name, Comparator<CSVRecord> comparator) throws IOException {
Reader inputStreamReader = new InputStreamReader(in);
Iterable<CSVRecord> csvRecords = CSVFormat.RFC4180.withFirstRecordAsHeader().parse(inputStreamReader);
List<CSVRecord> csvRecordsList = Lists.newArrayList(csvRecords);
Collections.sort(csvRecordsList,comparator);
Writer outputStreamWriter = new OutputStreamWriter(out);
CSVPrinter cvsPrinter = CSVFormat.RFC4180.print(outputStreamWriter);
cvsPrinter.printRecords(csvRecordsList);
cvsPrinter.flush();
cvsPrinter.close();
問題があることである:私は次のメソッドを使用して昇順に注文したい
User ID,First Name
3,David
4,Ruby
10,Ruby
Collections.sortは何もしません。これは私がパラメータとして提供するものです:
Comparator<CSVRecord> comparator = (op1,op2) -> op2.get(field).compareTo(op1.get(field));
どうしたらいいですか?
私は、コード実行した場合、私は出力としてこれを得た: 4を、 "ルビー" 3、 "デビッド" 10、 "ルビー" – user3727540
どのように 'field'が定義されていますか? – oschlueter
このように:final String field = "User ID"; – user3727540