对对象按对象的某个属性进行排序
来源:互联网 发布:淘宝购买服务在哪里 编辑:程序博客网 时间:2024/05/16 19:14
private int age;
private String name;
public Student() {
super();
}
public Student(int age, String name) {
super();
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Object o) {
if (o == null) {
try {
throw new Exception("该对象为空!");
} catch (Exception e) {
e.printStackTrace();
}
}
if (!(this.getClass().getName().equals(o.getClass().getName()
.toString()))) {
try {
throw new Exception("该对象的类名不一致!");
} catch (Exception e) {
e.printStackTrace();
}
}
if (!(o instanceof Student)) {
try {
throw new Exception("该对象不是Student的实例!");
} catch (Exception e) {
e.printStackTrace();
}
}
Student student = (Student) o;
return this.getAge() - student.getAge();
}
}
对某个对象按照对象的某个属性进行排序,没必要自己写一些方法,进行排序。
利用JDK的Collections的排序方法即可,
1、该对象的实现Comparable<T>接口
2、重写public int compareTo(Object o)方法。
3、测试方法
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
students.add(new Student(29, "张三"));
students.add(new Student(28, "张三"));
students.add(new Student(30, "张三"));
students.add(new Student(31, "张三"));
students.add(new Student(24, "张三"));
students.add(new Student(25, "张三"));
students.add(new Student(27, "张三"));
// 进对象集合进行排序
Collections.sort(students);
// 遍历集合
for (Student s : students) {
System.out.println("age:" + s.getAge() + " name:" + s.getName());
}
}
}
- 对对象按对象的某个属性进行排序
- 对对象的某些属性进行排序
- 根据List里面的对象属性对对象排序
- java List对对象的属性排序
- 按规则对对象数组进行排序
- 排序(对对象进行排序)二
- STL对对象的排序
- Collections.sort()对对象进行排序
- Collections.sort()对对象进行排序
- Comparable接口对对象进行排序
- struts对对象属性的监听
- unity编辑器对对象属性的编辑
- Spring对对象属性的校验
- 数组排序(按对象中某个属性进行排序)
- vue的观察者,不会对对象的属性进行冒泡监听
- java对象集合中某个属性的汉字进行按拼音进行排序
- 自定义对象里面的 针对 某个属性 / 字段 进行排序
- JavaScript按照对象的某个属性进行排序
- Cocos-2d 关于多个CCSprite精灵播放同一个CCAction动画问题
- java并发编程5:实现锁无关数据结构
- 程序设计里的“小聪明”(1)
- 关于在app中直接打开其它网页
- Linux下配置ip地址
- 对对象按对象的某个属性进行排序
- VS2008和VC之间变量的转换问题
- java简单解析xml
- 关于用户打分的,不是直接弹出框的那种
- UITableView 下拉刷新功能
- vlan 以及 Linux实现的IEEE 802.1Q VLAN
- RUNTIME_CLASS(CFloatWindow1)
- mv命令
- 新印的钞票如何流入市场?