黑马程序员技术交流社区
标题:
在集合中排序对象
[打印本页]
作者:
BackGaoz
时间:
2016-4-28 23:02
标题:
在集合中排序对象
在treeset集合中 存入多个学生对象,学生有姓名和成绩两个属性,再存入集合时以学生的成绩为依据判断
分析
1.首先有一个bean类,Student类,其中有String name;int num两个变量
2.这个要被存入集合并排序,所以实现Conparable接口,并且重写CompareTo方法,以成绩为主要条件排序
3.在测试类中创建集合对象,并且添加学生对象
1.创建学生类,并实现Comparable接口重写其CompareTo方法
package com.heima.bean;
public class Student implements Comparable<Student> { //实现Comparable接口
private String name;
private int cj;
public Student() {
super();
}
public Student(String name, int cj) {
super();
this.name = name;
this.cj = cj;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCj() {
return cj;
}
public void setCj(int cj) {
this.cj = cj;
}
@Override
public String toString() {
return "Student [name=" + name + ", cj=" + cj + "]";
}
@Override
public int compareTo(Student s) { //重写compareTo方法
int num = this.cj - s.cj; //以成绩为主要条件排序
return num == 0 ? this.name.compareTo(s.name) : num; //名字为次要条件
}
}
复制代码
2.测试类
package com.heima.test;
import java.util.TreeSet;
import com.heima.bean.Student;
public class Test02_学生对象 {
public static void main(String[] args) {
TreeSet<Student> ts = new TreeSet<>();
ts.add(new Student("张三",60));
ts.add(new Student("李四",70));
ts.add(new Student("王五",80));
ts.add(new Student("赵六",70));
for (Student student : ts) {
System.out.println(student);
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2