当前位置: 首页 > 知识库问答 >
问题:

java中csv的比较列

郭胤
2023-03-14

我正在用我的“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文件作为输出。

共有1个答案

宗冷勋
2023-03-14

假设您只需要帮助找到最高工资,下面是一个快速示例:

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