鱼C论坛

 找回密码
 立即注册
查看: 3834|回复: 3

[已解决]入门java,请指导一个问题,自己也写了,但是始终不对,对java键盘输入不懂

[复制链接]
发表于 2015-4-29 10:22:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
java编程:请把学生名和考试分数录入到Map中,并按分数显示前3名成绩学员的名字。
  1. package spring.exer;

  2. import java.util.Map;
  3. import java.util.Scanner;
  4. import java.util.Set;
  5. import java.util.TreeMap;

  6. public class Exercise1 {
  7.         public static void main(String[] args) {
  8.                 Scanner s = new Scanner(System.in);
  9.                 Map map = new TreeMap();
  10.                 System.out.println("请输入名字:");
  11.                 String str ;
  12.                 str = s.next();
  13.                
  14.                
  15.                 while(str != "null"){
  16.                         System.out.println("请输入分数:");
  17.                          int score = s.nextInt();
  18.                          map.put(new Student(str,score),score);
  19.                          System.out.println("请输入名字:");
  20.                          str = s.next();
  21.                 }
  22.                
  23.                
  24.                 Set set = map.keySet();
  25.                 for(int i = 0;i < 3;i++){
  26.                         System.out.println(set);
  27.                 }
  28.         }
  29. }

  30. class Student implements Comparable {
  31.         private String name;
  32.         private int score;
  33.         public String getName() {
  34.                 return name;
  35.         }
  36.         public void setName(String name) {
  37.                 this.name = name;
  38.         }
  39.         public int getScore() {
  40.                 return score;
  41.         }
  42.         public void setScore(int score) {
  43.                 this.score = score;
  44.         }
  45.         public Student(String name, int score) {
  46.                 super();
  47.                 this.name = name;
  48.                 this.score = score;
  49.         }
  50.         @Override
  51.         public int hashCode() {
  52.                 final int prime = 31;
  53.                 int result = 1;
  54.                 result = prime * result + score;
  55.                 result = prime * result + ((name == null) ? 0 : name.hashCode());
  56.                 return result;
  57.         }
  58.         @Override
  59.         public boolean equals(Object obj) {
  60.                 if (this == obj)
  61.                         return true;
  62.                 if (obj == null)
  63.                         return false;
  64.                 if (getClass() != obj.getClass())
  65.                         return false;
  66.                 Student other = (Student) obj;
  67.                 if (score != other.score)
  68.                         return false;
  69.                 if (name == null) {
  70.                         if (other.name != null)
  71.                                 return false;
  72.                 } else if (!name.equals(other.name))
  73.                         return false;
  74.                 return true;
  75.         }
  76.         @Override
  77.         public int compareTo(Object o) {
  78.                 if(o instanceof Student){
  79.                         Student s = (Student)o;
  80.                         return s.score - this.score;
  81.                 }
  82.                 return 0;
  83.         }
  84.        
  85.        
  86. }
复制代码



最佳答案
2015-4-29 16:17:39
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class Exercise1 {
        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                Map map = new TreeMap();
                int count = 0;
                while ( count < 3 ) {
                        System.out.print("请输入第 " + (count + 1) + " 个学生的名字:");
                        String name = s.next();
                        System.out.print("请输入第 " + (count + 1) + " 个学生的分数:");
                        int score = s.nextInt();
                        map.put(new Student(name, score), score);
                        count ++;
                        System.out.println("\n");
                }
               
                Set set = map.keySet();
                for (int i = 0; i < 3; i++) {
                        System.out.println(set);
                }
        }
}

class Student implements Comparable {
        private String name;
        private int score;

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getScore() {
                return score;
        }

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

        public Student(String name, int score) {
                super();
                this.name = name;
                this.score = score;
        }
       
        @Override
        public String toString() {
                return "[ name:" + this.name + ", score:" + this.score + " ]";
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + score;
                result = prime * result + ((name == null) ? 0 : name.hashCode());
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Student other = (Student) obj;
                if (score != other.score)
                        return false;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                return true;
        }

        @Override
        public int compareTo(Object o) {
                if (o instanceof Student) {
                        Student s = (Student) o;
                        return s.score - this.score;
                }
                return 0;
        }

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-29 16:17:39 | 显示全部楼层    本楼为最佳答案   
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class Exercise1 {
        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                Map map = new TreeMap();
                int count = 0;
                while ( count < 3 ) {
                        System.out.print("请输入第 " + (count + 1) + " 个学生的名字:");
                        String name = s.next();
                        System.out.print("请输入第 " + (count + 1) + " 个学生的分数:");
                        int score = s.nextInt();
                        map.put(new Student(name, score), score);
                        count ++;
                        System.out.println("\n");
                }
               
                Set set = map.keySet();
                for (int i = 0; i < 3; i++) {
                        System.out.println(set);
                }
        }
}

class Student implements Comparable {
        private String name;
        private int score;

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getScore() {
                return score;
        }

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

        public Student(String name, int score) {
                super();
                this.name = name;
                this.score = score;
        }
       
        @Override
        public String toString() {
                return "[ name:" + this.name + ", score:" + this.score + " ]";
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + score;
                result = prime * result + ((name == null) ? 0 : name.hashCode());
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Student other = (Student) obj;
                if (score != other.score)
                        return false;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                return true;
        }

        @Override
        public int compareTo(Object o) {
                if (o instanceof Student) {
                        Student s = (Student) o;
                        return s.score - this.score;
                }
                return 0;
        }

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-4-29 16:18:39 | 显示全部楼层
排序自己排吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-17 09:35:17 | 显示全部楼层
while(str != "null")是判断str不等于“null”这个字符应该吧“”去掉,要不然你都执行不了下面的代码喽,除非你输入‘unll’
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 23:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表