Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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_Sorting - Fatal编程技术网

Java 对路由器接口列表进行排序

Java 对路由器接口列表进行排序,java,sorting,Java,Sorting,包含路由器接口的列表如下:- GigabitEthernet 1/0, GigabitEthernet 1/1,GigabitEthernet 1/11, GigabitEthernet 1/10, GigabitEthernet 1/3` 现在我正在应用Collection.sortlist进行排序,但它会导致一个问题,排序方式如下:- GigabitEthernet 1/0, GigabitEthernet 1/1, GigabitEthernet 1/10, GigabitEtherne

包含路由器接口的列表如下:-

GigabitEthernet 1/0, GigabitEthernet 1/1,GigabitEthernet 1/11, GigabitEthernet 1/10, GigabitEthernet 1/3`
现在我正在应用Collection.sortlist进行排序,但它会导致一个问题,排序方式如下:-

GigabitEthernet 1/0, GigabitEthernet 1/1, GigabitEthernet 1/10, GigabitEthernet 1/11, GigabitEthernet 1/3`
GigabitEthernet 1/0, GigabitEthernet 1/1, GigabitEthernet 1/3, GigabitEthernet 1/10, GigabitEthernet 1/11`
但在我们的案例中,它应该这样分类:-

GigabitEthernet 1/0, GigabitEthernet 1/1, GigabitEthernet 1/10, GigabitEthernet 1/11, GigabitEthernet 1/3`
GigabitEthernet 1/0, GigabitEthernet 1/1, GigabitEthernet 1/3, GigabitEthernet 1/10, GigabitEthernet 1/11`

如何在Java中实现这种排序

实现您自己的comparator实例,并使用comparator调用sort方法:

比较器将控制排序顺序。

将字符串解析为一个类,并使用适当的比较器对该类的列表进行排序

差不多

class GigabitEthernet{
    public int num; //up/down?
    public int denom;
    public GigabitEthernet(String str); // parse
    public String toString(); //regenerate string
}

这将使比较器更干净

使用Collections中的方法,该方法将比较器作为第二个参数,并实现一个匿名比较器类,该类为您的排序执行正确的比较

为Collections.sort提供一个适当的比较器。当您说class时,您是指保存字符串的自定义类吗,还是别的什么?@RandallCook更新了我的答案,我的想法是将其解析成一个数据结构,然后可以轻松、干净地进行比较。我喜欢它。我相信我会编写类似的代码。谢谢你的更新。大家好,谢谢你的回复,但我想每个人都给了我一个用comparator实现排序的想法。我知道这个api,但我真正的问题是,在这种情况下,comparator的实现是什么样子的。请从参与比较的字符串中提取子字符串,然后将字符串转换为数字并进行比较。要提取子字符串,请使用String类的substring方法。要将字符串转换为整数,请使用integer.parseInt方法。