本帖最后由 王德升 于 2012-6-20 09:07 编辑
//第一段代码。
import java.util.*;
class TreeSetDemo
{
public static void main(String[] args)
{
TreeSet ts = new TreeSet();
ts.add(new Student("java01",53));
ts.add(new Student("java03",33));
ts.add(new Student("java04",13));
ts.add(new Student("java05",13));
Iterator it = ts.iterator();
while(it.hasNext())
{
Student stu = (Student)it.next();
System.out.println(stu.getName()+"...."+stu.getAge());
}
}
}
class Student implements Comparable
{
private String name;
private int age;
Student(String name,int age)
{
this.name = name;
this.age = age;
}
public int compareTo(Object obj)
{
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象"); //2.
Student s = (Student)obj;
System.out.println(this.name+"....compare..."+s.name);
if(this.age>s.age)
return 1;
if(this.age==s.age)
//return 0;
return this.name.compareTo(s.name);
return -1;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
/*
D:\java0420\day14>javac TreeSetDemo.java
注: TreeSetDemo.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
D:\java0420\day14>java TreeSetDemo
java01....compare...java01
java03....compare...java01
java04....compare...java01
java04....compare...java03
java05....compare...java03
java05....compare...java04
java04....13
java05....13
java03....33
java01....53
1.为什么我编译java01和java01也比较了一次呢?
2.这里为什么要抛异常,而13天的ArrayList怎么这里没有抛呢?
*/
//第二个问题。
class Utils<QQ>// 1.
{
private QQ q; //2.
public void setA(QQ q) //3.
{
this.q = q;
}
public QQ getB()//4.
{
return q; // 5..
}
}
1.为什么这里放个QQ?
2.为什么出来个q?
3.为什么这里放QQ q?
4.为什么这里要搞QQ类型的?
5.为什么这里返回q
这5个请说的能让我知道来龙去脉,不要说那么浅。谢谢! |
|