您的位置:首页 > 其它

List集合元素几种排序方法总结

2018-03-07 11:34 253 查看
List排序

排序方法一(直接排序)
List<String> names=new ArrayList<String>();
List<Integer> ages=new ArrayList<Integer>();
Collections.sort(names);
Collections.sort(ages);

排序方法二

实现Comparable接口
该方法缺点就是只能对单一属性添加进行排序,而且写死在User类中
public class User implements Comparable<User>
public int compareTo(User user) {
//return this.getName().compareTo(user.getName()); //升序
return user.getName().compareTo(this.getName());  //降序
}
Collections.sort(users);

排序方法三
使用比较器来进行排序,优点可以自己定义排序规则,可以对多属性进行排序
创建比较器类
public class UserComparator implements Comparator<User> {
/**
* 比较器方法
* 先按年龄排序从小到大,如果年龄一样的话按id排序
*/
@Override
public int compare(User o1, User o2) {
if(o1.getAge()>o2.getAge())
return 1;
else if(o1.getAge()==o2.getAge()){
if(o1.getId()>o2.getId())
return 1;
else if(o1.getId()==o2.getAge())
return 0;
else
return -1;
}
else
return -1;
}
}

//创建比较器对象
UserComparator comp=new UserComparator();
//调用排序方法
Collections.sort(users,comp);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: