我正在用我的“CsvReader”读取csv文件,如下所示:
public class CsvReader {
public static void main(String[] args) {
Map<String,Employee> empl = new HashMap <String,Employee>();
String csvFile= "C:/Users/rapurohi/Desktop/employee.csv";
BufferedReader br=null;
String line= "";
String csvSplitBy=",";
try{
br=new BufferedReader(new FileReader(csvFile));
while ((line =br.readLine())!=null){
String [] employee=line.split(csvSplitBy);
Employee e=new Employee(employee[0], employee[1], employee[2]);
empl.put((employee[0]),e);
System.out.println("Employee[id="+employee[0]+"name="+employee[1]+"salary="+employee[2]+"]" );
}
}catch (FileNotFoundException|IOException e){
e.printStackTrace();
}
}finally{
if(br!=null){
try{
br.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
}
我使用的csv如下所示:
empid,name,salary
"456","John","4000"
"457","James","5000"
"458","Jack","3000"
"459","Jenny","6000"
雇员的dataVO看起来像
包com。cg。dto;
公营雇员{
字符串empId;
字符串名称;
薪酬;
公共字符串getEmpId(){
返回empId;
}
public void setEmpId(字符串empId){
这empId=empId;
}
公共字符串
返回empName;
}
public void setEmpName(字符串empName){
这empName=empName;
}
公共字符串getEmpSalary(){
返还工资;
}
公共无效setempSalary(字符串empSalary){
这empSalary=empSalary;
}
公共雇员(字符串empId、字符串empName、字符串empalary){
超级();
这empId=empId;
这empName=empName;
这empSalary=empSalary;
}
我需要找到最高工资,并将条目写入Csv文件作为输出。
假设您只需要帮助找到最高工资,下面是一个快速示例:
int maxSal = 0;
Employee highestPayedEmployee = null;
for (Employee employee : empl.values()) {
if(employee.getSalary() > maxSal){
maxSal = employee.getSalary();
highestPayedEmployee = employee;
}
}
这假设Employee类有一个getSalary()方法,该方法以数字形式返回薪水。
如果需要,您可以使用以下命令将字符串转换为数字:
Integer.parseInt(salaryString);
Java在进行比较时抛出的错误是: 然后比较的方法(比较器 你知道发生了什么事吗?
我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和
问题内容: 在Java中整数比较是棘手的,因为和表现不同。我明白了。 但是,如本示例程序所示, (第4行)的 行为不同于 (第3行) 。为什么是这样?? 结果 问题答案: 从JLS 如果装箱的值p为true,false,字节或\ u0000到\ u007f范围内的char或-128到127(含)之间的整数或短数,则令r1和r2为p的任何两次拳击转换。r1 == r2总是这样。 理想情况下,将给定的
问题内容: 为什么m和t都是假的?比较Java中2个数组的正确方法是什么? 问题答案: 使用Arrays.equals方法。例:
问题内容: 给我输出: 我不太了解第一行,为什么它会给我带来错误? 如果我在字符串2上添加空格,则此行为false,但如果不添加空格,则为true: 为什么第1行给我假,但第6行为真,但是如果我在string2上添加空格则为假。 谢谢=) 问题答案: 那里发生了几件事。 当您将两个字符串声明为相等的“ Hi”时,java将对其进行优化以引用相同的字符串对象(因此不必将相同的字符串存储两次)。 “
问题内容: 我想比较Java中的类类型。 我以为我可以这样做: 我想比较一下是否传递给函数的obj是从MyObject_1扩展而来的。但这是行不通的。似乎getClass()方法和.class提供了不同类型的信息。 如何比较两个类类型,而不必创建另一个伪对象来比较类类型? 问题答案: 试试这个: 由于继承,这对接口也有效: 有关instanceof的更多信息,请访问:http : //mindpr