package test;import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;public class StudentForSet implements Comparable{
private String name;
private int age;
public StudentForSet(String name, int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString(){
return "name:"+name+" "+"age:"+age;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SortedSet set = new TreeSet();
set.add(new StudentForSet("eiok",23)); //行10
set.add(new StudentForSet("zhangsan",21));//行11
set.add(new StudentForSet("wangwu",24));//行12
set.add(new StudentForSet("bak",25));//行13
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
@Override
public int compareTo(Object obj) {
// TODO Auto-generated method stub
StudentForSet student = (StudentForSet) obj;//将参数对象强转成当前类类型
return this.age-student.age;
}
为了更好理解compareTo这个重写的方法,求高手解释下this.age 和 student.age
}
import java.util.SortedSet;
import java.util.TreeSet;public class StudentForSet implements Comparable{
private String name;
private int age;
public StudentForSet(String name, int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString(){
return "name:"+name+" "+"age:"+age;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SortedSet set = new TreeSet();
set.add(new StudentForSet("eiok",23)); //行10
set.add(new StudentForSet("zhangsan",21));//行11
set.add(new StudentForSet("wangwu",24));//行12
set.add(new StudentForSet("bak",25));//行13
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
@Override
public int compareTo(Object obj) {
// TODO Auto-generated method stub
StudentForSet student = (StudentForSet) obj;//将参数对象强转成当前类类型
return this.age-student.age;
}
为了更好理解compareTo这个重写的方法,求高手解释下this.age 和 student.age
}
解决方案 »
- ThreadLocal问题
- struts2做的项目,本地测试没问题,上传服务器后出问题,项目急用,高手请进!!!
- 怎样用jsp页面中的java代码获取strus2标签中的值
- Not closing pre-bound Hibernate Session after HibernateTemplate
- 大家觉得中科软科技股份有限公司怎么样啊!
- 大家帮看看这个错误,TOMCAT启动时报的,框架是SSH
- hibernate开启二级缓存后 如何查看效果
- 请问初学JSP用哪本教材好?谢谢!!
- 在线客服的一些问题
- Sun今日发布Java 2 Platform, Enterprise Edition 5.0
- DWR ScriptSession得到JSP路径的问题
- 急急急 如何让Jgraph生成的流程图显示到web页面上
name:zhangsan age:21
name:eiok age:23
name:wangwu age:24
name:bak age:25
StudentForSet sf2 = new StudentForSet("zhangsan", 21);
int result = sf1.compareTo(sf2);
if (result > 0) {
System.out.println(" sf1 大于sf2");
} else if (result == 0) {
System.out.println(" sf1 等于sf2");
} else {
System.out.println(" sf1 小于sf2");
}
this.age 就相当于 sf1.age,
student.age 相当于 sf2.age如果反过来sf2.compareTo(sf1);
那么this.age 就相当于 sf2.age,
student.age 相当于 sf1.age
你说的这些我都清楚,只是我不明白,当调用new StudentForSet("eiok",23),this肯定就是当前对象啦,那么StudentForSet student = (StudentForSet) obj;是怎么把new StudentForSet("zhangsan",21)这个对象传给obj的,然后进行比较。