排序路由器接口列表

时间:2013-01-29 07:44:03

标签: java sorting

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

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

现在我正在应用Collection.sort(list)进行排序,但它会导致一个问题,它会对此进行排序: -

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中实现这种类型的排序。

3 个答案:

答案 0 :(得分:2)

将字符串解析为class,并使用适当的classComparator的列表进行排序。

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

这应该使比较器更清洁

答案 1 :(得分:1)

实现您自己的比较器实例并使用比较器调用sort方法:http://goo.gl/Zz13w

您的比较器将控制排序顺序。

答案 2 :(得分:1)

使用Collections中的方法,它将比较器作为第二个参数(http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Collections.html#sort%28java.util.List,%20java.util.Comparator%29)并实现一个匿名比较器类,它为您的排序做正确的比较