我有一个包含IP地址,角色和组的列表。我想先用整数列表对整个列表进行排序。并且基于新列表,对于每个组,我想再次按角色排序。最后,基于前一种排序,再次按IP地址排序。我无法找到实现目标的方法,并在几个小时内挣扎,请提前帮助,谢谢。
例如,列表如下:{
<192.168.1.1, 1, "group 2">,
<192.168.1.3, 1, "group 1">,
<192.168.1.7, 2, "group 1">,
<192.168.1.25, 2, "group 1">,
<192.168.1.1, 2, "group 2">
}
理想情况下,在三种类型之后,输出应该是这样的:
{
<192.168.1.3, 1, "group 1">,
<192.168.1.7, 2, "group 1">,
<192.168.1.25, 2, "group 1">,
<192.168.1.1, 1, "group 2">,
<192.168.1.1, 2, "group 2">
}
答案 0 :(得分:0)
创建IPComparator,GroupComparator,RoleComparator对象。这些对象implements Comparator Interface
。 E.g;
class IPComparator implements Comparator<IP>{
public compare (IP o1, IP o2){
//code here
}
}
同样,class GroupComparator implements Comparator<Group>
和class RoleComparator implements Comparator<Role>
。
现在是firstlogic。 collections.sort(items, new GroupComparator());
第二个逻辑:现在去角色等等。这应该会让你知道如何开始。请记住,您必须保留某种历史记录来对角色和IP进行排序。
答案 1 :(得分:0)
您可以使用系统商机在此处对Arrays.sort(yourArray)
进行排序:Java: Sort an array
同样非常强大的解释here。
答案 2 :(得分:0)
为每种排序定义比较器。然后使用Collections.sort(your_list,comparator_you_want_to_use);