请教大虾:java实现Comparable接口问题? 我在学java集合,上课听得很昏!这是一道作业不知怎么下手!题目:自定义一个Student类实现Comparable接口(该接口用于指定排序规则),Student类包含学号和姓名属性,使用TreeSet添加一组Student类的对象,然后循环输出学生信息! 请教大家帮我做做,还说下其中的原理! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你看下String 它是如何实现这个接口的~ 你这样想~ java是怎么知道如何比较两个Student对象大小呢~~ 要用这个接口告诉它 public class Student implements Comparable { String name; int num; public Student(String name,int num){ this.name=name; this.num=num; } public String getName(){ return name; } public int getNum(){ return num; } public int compareTo(Object o) { Student s=(Student)o; if(num<s.getNum()){ return -1; } if(num>s.getNum()){ return 1; } return 0; }}import java.util.*;public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Set set=new TreeSet(); set.add(new Student("张三",4)); set.add(new Student("李四",2)); set.add(new Student("王五",3)); set.add(new Student("赵六",1)); Iterator nn=set.iterator(); while(nn.hasNext()){ Student s=(Student)nn.next(); System.out.println(s.getNum()+" "+s.getName()); } }}我是这样做的,分两个类写的!我先想问下,如果Student类不实现Comparable 接口,会怎么样?我不实现接口,调试报错了!运行不了! 不实现 肯定会报错的 因为你里面的元素是 自定义的类类型是自定义类型 就必须实现 comparable 的compareto()方法 如果是单纯的 String 类型的话 你就没这么多烦恼了 TreeSet 它会根据首字母的前后顺序 自动进行排序的 你在main方法里有用到排序吗>> 你用Set的 来遍历 和排序有什么关系?? 而且放在Set里面的对象是 没有顺序的 新手,求代码 java问题 Servlet and JSP的学习问题 十分紧急的问题,谢谢关注,,, 问个很菜的问题,请高手指点一下 正则表达式怎样按或的方式匹配多个词? 一个jdbc的问题 如何在JPane中放图片?(在线等待) 请大家帮忙看看下面问题出在哪里 菜鸟小问(不要笑话) 如何去除字符串中所有的|呢? C++代码更改java代码---
你这样想~ java是怎么知道如何比较两个Student对象大小呢~~ 要用这个接口告诉它
String name;
int num;
public Student(String name,int num){
this.name=name;
this.num=num;
}
public String getName(){
return name;
}
public int getNum(){
return num;
}
public int compareTo(Object o) {
Student s=(Student)o;
if(num<s.getNum()){
return -1;
}
if(num>s.getNum()){
return 1;
}
return 0;
}
}
import java.util.*;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Set set=new TreeSet();
set.add(new Student("张三",4));
set.add(new Student("李四",2));
set.add(new Student("王五",3));
set.add(new Student("赵六",1));
Iterator nn=set.iterator();
while(nn.hasNext()){
Student s=(Student)nn.next();
System.out.println(s.getNum()+" "+s.getName());
}
}}我是这样做的,分两个类写的!我先想问下,如果Student类不实现Comparable 接口,会怎么样?
我不实现接口,调试报错了!运行不了!
是自定义类型 就必须实现 comparable 的compareto()方法
如果是单纯的 String 类型的话 你就没这么多烦恼了
TreeSet 它会根据首字母的前后顺序 自动进行排序的
你用Set的 来遍历 和排序有什么关系??