黑马程序员技术交流社区

标题: 为什么我这个TreeSet 怎么这样创建对象不行呢? [打印本页]

作者: zhang214214    时间: 2015-5-2 22:04
标题: 为什么我这个TreeSet 怎么这样创建对象不行呢?
麻烦看看,求高手指点!

QQ截图1.png (20.86 KB, 下载次数: 12)

问题

问题

作者: 1017161726    时间: 2015-5-2 22:22
从这一部分代码来看,还是可以的,只是缺了个指定泛型。你不会是想说,为什么行号哪里有个叉叉吧。
作者: l763631191    时间: 2015-5-2 22:26
本帖最后由 l763631191 于 2015-5-2 22:27 编辑

看不出来 就这一点
作者: 过路人    时间: 2015-5-2 23:15
你这3句代码怎么能看出毛病?求解,怎么看
作者: 大兵在海边    时间: 2015-5-2 23:31
叉号那里提示的错误是什么?这样看你的代码,是一点问题没有的,你可以先ctrl+x再ctrl+v一下看看能不能解决,eclipse有时候会有点小bug
作者: yihuihua    时间: 2015-5-3 00:06
这个在命令行运行应该是能过的
作者: 大西洋    时间: 2015-5-3 00:15
这样写:
  1.                 TreeSet<String> tree = new TreeSet<String>();
复制代码

作者: zhang214214    时间: 2015-5-3 00:36
大西洋 发表于 2015-5-3 00:15
这样写:

还是不行啊.....
作者: ZSMAN    时间: 2015-5-3 09:46
zhang214214 发表于 2015-5-3 00:36
还是不行啊.....

基础测试吧,这是我写的:
package com.itheima;

import java.util.TreeSet;

/**
*    第10题:声明类Student,包含3个成员变量:name、age、score,创建5个对象装入TreeSet,
*    按照成绩排序输出结果(考虑成绩相同的问题)。
* @author zdl
*      
*/
public class Test10 {
        public static void main(String[] args) {
                TreeSet<Student> ts = new TreeSet<Student>();
                ts.add(new Student("a", 21, 94.5));
                ts.add(new Student("b", 21, 94.5));// 用于比较的变量。和上面相比,成绩相同,名字不同;与下面相比成绩姓名相同,年龄不同。
                ts.add(new Student("b", 24, 94.5));
                ts.add(new Student("c", 24, 57));
                ts.add(new Student("d", 24, 100));
                System.out.println("姓名 年龄 成绩");
                for (Student st : ts) {// 循环打印集合元素,按成绩从大到小排列。
                        System.out.println(st.getName() + " " + st.getAge() + " "
                                        + st.getscore());
                }
        }
}

// 学生类实现Comparable接口
class Student implements Comparable<Student> {
        private String name;
        private int age;
        private double score;

        // 构造函数
        public Student(String name, int age, double score) {
                this.name = name;
                this.age = age;
                this.score = score;
        }

        // 设置属性
        public void setName(String name) {
                this.name = name;
        }

        public void setAge(int age) {
                this.age = age;
        }

        public void setScore(double score) {
                this.score = score;
        }

        // 获取属性
        public String getName() {
                return this.name;
        }

        public int getAge() {
                return this.age;
        }

        public double getscore() {
                return this.score;
        }

        // 覆盖compareTo方法
        public int compareTo(Student st) {
                int num = -new Double(this.score).compareTo(new Double(st.score));// 让成绩从大到小排列
                if (num == 0) {
                        num = this.name.compareTo(st.name);// 成绩相同时,按名字从小到大排列
                        if (num == 0)
                                return new Integer(this.age).compareTo(new Integer(st.age));// 成绩名字都相同时,按年龄从小到大排列
                }
                return num;
        }

}
作者: zhang214214    时间: 2015-5-3 11:21
ZSMAN 发表于 2015-5-3 09:46
基础测试吧,这是我写的:
package com.itheima;

谢谢!但是我依然没办法运行你的代码,应该是我的eclipse的问题
作者: ZSMAN    时间: 2015-5-3 11:28
zhang214214 发表于 2015-5-3 11:21
谢谢!但是我依然没办法运行你的代码,应该是我的eclipse的问题

你把错误截图放出来
作者: ZSMAN    时间: 2015-5-3 11:31
zhang214214 发表于 2015-5-3 11:21
谢谢!但是我依然没办法运行你的代码,应该是我的eclipse的问题

你没有把我的所有代码都复制过去吧?注意一下,我的类名是Test10
作者: zhang214214    时间: 2015-5-3 11:36
ZSMAN 发表于 2015-5-3 09:46
基础测试吧,这是我写的:
package com.itheima;

我的eclipse问题把,全部复制过来,一样是TreeSet哪里编译不过,应该是jdk包的问题把

作者: zhang214214    时间: 2015-5-3 11:38
ZSMAN 发表于 2015-5-3 11:28
你把错误截图放出来

还是谢谢你

QQ截图1.png (159.86 KB, 下载次数: 3)

QQ截图1.png

作者: ZSMAN    时间: 2015-5-3 11:41
zhang214214 发表于 2015-5-3 11:38
还是谢谢你

你的文件名要和类名一致啊~这个图上显示类名Test10那里有问题,你看你的java文件名是不是Tset10
作者: zhang214214    时间: 2015-5-3 16:23
zhang214214 发表于 2015-5-3 11:38
还是谢谢你

改了还是TreeSet 那里不行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2