List 简单排序
来源:互联网 发布:ios开发用什么数据库 编辑:程序博客网 时间:2024/06/03 04:28
1.Comparable接口用于在类的设计中使用;
- Comparable接口用于在类的设计中使用;
现有一个需要排序的类User, 去实现 Comparable接口, 按照类中的某个数值类型正序或者倒序
public class User implements Comparable<User>{ private String id; private String name; private int age; public User() { } public User(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } //get()...set()//这种方式使用User类实现了Comparable接口,实现了compareTo方法,具体的排序规则就在这个方法中重写 @Override public int compareTo(User u) { //return u.getAge() - this.getAge();//倒序 return Integer.valueOf(this.getAge()).compareTo(u.getAge());//正序 //return this.getAge() - u.getAge();//正序 }}
测试类1
List<User> users = new ArrayList<>(); for (int i = 0; i < 10; i++) { users.add(createUser(i + "号")); } //这种方式使用User类实现了Comparable接口,实现了compareTo方法,具体的排序规则就在这个方法中重写 Collections.sort(users); for (User user : users) { System.out.println("name:" + user.getName() + "---age:" + user.getAge()); }
2.Comparator接口用于类设计已经完成,还想排序(Arrays);
- User2类是一个没有实现Comparable的类
//没有实现Comparablepublic class User2 { private String id; private String name; private int age; public User2() { } public User2(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } //get()...set()
测试类2
List<User2> users2 = new ArrayList<>(); for (int i = 0; i < 10; i++) { users2.add(createUser2(i + "号")); } //使用Comparator接口的compare来完成比较器,排序方法写在这里 Collections.sort(users2, new Comparator<User2>() { @Override public int compare(User2 o1, User2 o2) { //1为正序,-1为倒序 return o1.getAge() > o2.getAge() ? 1 : -1; } }); for (User2 user2 : users2) { System.out.println("name:" + user2.getName() + "---age:" + user2.getAge()); }
也可以再写个User2Comparator类实现Comparator
这样写法就是为
Collections.sort(users2, new User2Comparator())
阅读全文
0 0
- C#List简单排序
- List 简单排序
- java中的简单list排序
- java 简单的list、排序的例子
- Java List 实现排序的简单方法
- 最简单的List集合排序方法
- 最简单的List集合排序方法
- std list/vector sort 排序就这么简单
- 利用反射 和 comparator 实现List 的简单排序
- std list/vector sort 排序就这么简单
- std list/vector sort 排序就这么简单
- std list/vector sort 排序就这么简单
- List排序
- list 排序
- list排序...
- List排序
- List 排序
- List排序
- 用scikit-learn学习LDA主题模型
- 一个月薪字段的设计
- javase Connection interface
- POJ
- java拼接请求
- List 简单排序
- gcc编译出现segmentation fault的错误
- ansible-playbook实战之批量部署mysql主从同步
- 【Scikit-Learn 中文文档】概率校准
- 查询添加删除
- 多线程下载
- Swoole 实例二(Task功能)
- Thread、Runnable、Callable三种创建线程的简单示例及区别简介
- 全选和反选