黑马程序员技术交流社区
标题:
求高手帮忙看下些程序
[打印本页]
作者:
qmlovewhr
时间:
2013-7-6 10:02
标题:
求高手帮忙看下些程序
本帖最后由 赵海洋 于 2013-7-6 18:17 编辑
import java.util.*;
class TreeSetDemo
{
public static void main(String[] args)
{
TreeSet ts=new TreeSet(new Student());
ts.add("lisi01",22);
ts.add("lisi02",20);
ts.add("lisi04",19);
ts.add("lisi03",19);
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("不是学生对象");
Student s=(Student)obj;
System.out.println(this.name+"......compareTo......"+s.name);
if(this.age>s.age)
return 1;
if(this.age==s.age)
{
return this.name.compareTo(s.name);
}
return -1;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
}
该程序报了个错,说是找不到符号,但我不明白,哪出问题了?求解
作者:
denghui1010
时间:
2013-7-6 10:13
代码好像不完整
作者:
lkjghvcx@163.co
时间:
2013-7-6 10:17
本帖最后由 lkjghvcx@163.co 于 2013-7-6 10:21 编辑
没明白楼主的意思:改了下
TreeSet ts=new TreeSet();
//应该这样
ts.add(new Student("lisi01",22)); //这样添加
import java.util.*;
class TreeSetDemo
{
public static void main(String[] args)
{
// TreeSet ts=new TreeSet(new Student());
TreeSet ts=new TreeSet(); <font color="#ff0000">//应该这样</font>
//TreeSet<Student> ts=new TreeSet<Student>(); 或者用泛型
// ts.add("lisi01",22);
<font color="#ff0000"> ts.add(new Student("lisi01",22)); </font>
// ts.add("lisi02",20);
ts.add(new Student("lisi02",20));
// ts.add("lisi04",19);
ts.add(new Student("lisi04",19));
// ts.add("lisi03",19);
ts.add(new Student("lisi03",19));
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("不是学生对象");
Student s=(Student)obj;
System.out.println(this.name+"......compareTo......"+s.name);
if(this.age>s.age)
return 1;
if(this.age==s.age)
{
return this.name.compareTo(s.name);
}
return -1;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
}
复制代码
控制台输出:
lisi02......compareTo......lisi01
lisi04......compareTo......lisi01
lisi04......compareTo......lisi02
lisi03......compareTo......lisi02
lisi03......compareTo......lisi04
lisi03...19
lisi04...19
lisi02...20
lisi01...22
作者:
王靖远
时间:
2013-7-6 10:19
TreeSet ts=new TreeSet(new Student()); 没这种写法
作者:
哪颗最亮的星星
时间:
2013-7-6 10:24
兄弟你的主函数有问题,向集合里添加对象哪里:
TreeSet ts=new TreeSet();
ts.add(new Student("lisi01",22));
ts.add(new Student("lisi02",20));
ts.add(new Student("lisi04",19));
ts.add(new Student("lisi03",19));
把这个改了就行,你也可以给集合上加个泛型。
作者:
zms2100
时间:
2013-7-6 10:31
是这段代码有问题:
TreeSet ts=new TreeSet(new Student()); //如果要用泛型是new TreeSet<Student>();
//括号中添加的是比较器或其他集合,而不是存储数据类型的对象。
ts.add("lisi01",22); //此处添加对象的方式应该是ts.add(new Student("lisi01",22));
ts.add("lisi02",20); //以下同上。
ts.add("lisi04",19);
ts.add("lisi03",19);
然后应该就木有问题,Lz这部分的基础有点不牢,O(∩_∩)O~,要加油哦。
作者:
小石头39910
时间:
2013-7-6 11:52
<P>TreeSet ts=new TreeSet(new Student());//亲木有这种写法</P>
<P>//TreeSet ts=new TreeSet();//当然你也可以加上泛型解决安全隐患
ts.add("lisi01",22);</P>
<P>//ts.add(new Student("lisi01",90));
ts.add("lisi02",20);
ts.add("lisi04",19);
ts.add("lisi03",19);
</P>
复制代码
作者:
zhouchao
时间:
2013-7-6 12:15
TreeSet ts=new TreeSet(new Student());
ts.add("lisi01",22);
ts.add("lisi02",20);
ts.add("lisi04",19);
ts.add("lisi03",19);
这个地方有问题
应该改成
TreeSet ts=new TreeSet();
ts.add(new Student("lisi01",22));
ts.add(new Student("lisi02",20));
ts.add(new Student("lisi04",19));
ts.add(new Student("lisi03",19));
你可以看下API
TreeSet构造方法摘要
TreeSet()
构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。
TreeSet(Collection<? extends E> c)
构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。
TreeSet(Comparator<? super E> comparator)
构造一个新的空 TreeSet,它根据指定比较器进行排序。
TreeSet(SortedSet<E> s)
构造一个与指定有序 set 具有相同映射关系和相同排序的新 TreeSet。
你定义TreeSet ts=new TreeSet(new Student()); Java是无法识别的
同时TreeSet的add()方法
boolean add(E e)
将指定的元素添加到此 set(如果该元素尚未存在于 set 中)。
你的add("lisi01",22)在TreeSet中也是无法识别的
作者:
zanyuxiang
时间:
2013-7-6 13:51
package cn.itcast;
作者:
zanyuxiang
时间:
2013-7-6 13:57
TreeSet ts=new TreeSet(new Student());这句声明有问题应该这样TreeSet ts=new TreeSet<Student>();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2