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方法。