Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用比较器和集合以不同的方式对文本文件进行排序?(爪哇)?_Java - Fatal编程技术网

Java 如何使用比较器和集合以不同的方式对文本文件进行排序?(爪哇)?

Java 如何使用比较器和集合以不同的方式对文本文件进行排序?(爪哇)?,java,Java,有什么想法吗?如何使用比较器和集合以不同的方式对文本文件进行排序?(Java)?您几乎完全正确: 要比较整数,请使用以下命令: Integer.compareTo(int1, int2); new Comparator< EmployeeFX >(){ @Override public int compare(EmployeeFX o1, EmployeeFX o2) { return Integer

有什么想法吗?如何使用比较器和集合以不同的方式对文本文件进行排序?(Java)?

您几乎完全正确:

要比较整数,请使用以下命令:

Integer.compareTo(int1, int2);
new Comparator< EmployeeFX >(){

            @Override
            public int compare(EmployeeFX o1, EmployeeFX o2) {
                return Integer.compare(o1.getId(), o2.getId());
            }
        };
要比较字符串,请使用:

string1.compareTo(string2);
对于布尔类型,请使用:

Boolean.compare(boolean1, boolean2);
因此,比较器类将如下所示:

Integer.compareTo(int1, int2);
new Comparator< EmployeeFX >(){

            @Override
            public int compare(EmployeeFX o1, EmployeeFX o2) {
                return Integer.compare(o1.getId(), o2.getId());
            }
        };
新的比较器(){
@凌驾
公共整数比较(EmployeeFX o1,EmployeeFX o2){
返回整数.compare(o1.getId(),o2.getId());
}
};

Comparator基本上用于创建多个排序序列。可以使用任何属性对对象进行排序

仅举一个例子供您参考

public int compare(EmployeeFX emp1, EmployeeFX emp2) {

    return (emp1.getId() < emp2.getId()) ? -1
            : (emp1.getId() > emp2.getId()) ? 1 : 0;
}
public int比较(EmployeeFX emp1,EmployeeFX emp2){
返回值(emp1.getId()emp2.getId())?1:0;
}

您的期望产量是多少


在这种情况下,你会得到按薪水排序的数据(这是你最后一次排序)。之前的所有排序都变得无关紧要。

谢谢!但是,我如何命名该方法,以便下面的代码行“outputData(“按受薪顺序输出”)、list、EmployeeOrdering.EMPLOYEE_ID);”可以工作?当我尝试将该方法命名为“new Comparator EMPLOYEE_ID”时,该程序不起作用。好的,谢谢!但是我应该给这个比较器起什么名字,这样我就可以在我的驱动程序类中引用它了?(例如,使用代码行EmployeeOrdering.EMPLOYEE_ID)。我还想知道如何将ID号传递给比较器,以便它知道如何按ID排序?