我想通过以下阅读模式跳过此csv文件中的标题
做法。
限制使用此模式,因为我使用Collections.sort,它使用List作为参数。
场景:我持有大约20列,我需要对第3个字段进行排序,然后需要根据每个键(第3个字段)的第18列进行平均。在输出中,只需要4列。
------------ skip -------
File file = new File("C:\\Users\\shekhar\\Desktop\\Lab\\DumpData.csv");
//Declare file
List<String> lines =
Files.readAllLines(file.toPath(),StandardCharsets.UTF_8);//Reading file
Collections.sort(lines,new EmpIdComparator1()); // Sorting on 3rd field using comparator
Map<String,List<String>> employeeById = new HashMap<>(); // Map used to decrease the column
------------ skip ----------------------------------
输入数据在下面以逗号分隔值格式显示:
Employee Name,Employee ID,Working Hours,Date,<more columns >
===========================================
Sam,002,6.5,1 Nov
Sam,002,8,2 Nov
答案 0 :(得分:0)
为什么不在你的collections.sort之前通过循环原始创建一个新的List数组但忽略第一行使用变量if(lineno&gt; 2){..... add list for list array},and你在这个新阵列而不是原始阵列上进行排序。
答案 1 :(得分:0)
我会说使用一个基于你的员工ID的比较器,所以排序只发生在超过员工id 000的值上。
答案 2 :(得分:0)
我认为子列表可以满足您的需求。
Collections.sort(lines.sublist(1, lines.size()),new EmpIdComparator1());
它只对您传递给方法的列表的部分或视图进行排序。