A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我是来支持楼楼的{:2_45:}
回复 使用道具 举报
了解题目
回复 使用道具 举报
顶一贴,瞧一瞧
回复 使用道具 举报
版主很强悍啊,随便出道题我写了6个小时。
一共两个类    一个主类  一个Student类
主类有三个函数分别实现了 获取键盘录入的函数,录入的结果的函数,获取第三的版主及第四和第六的函数。
至于尾号依次为2、3、6的不允许出入的功能没有实现,我在考虑一下。
以下是此程序图片和打印结果
郑光宗进去了
刘凯进去了
王徐杰进去了
伍哲沂进去了
尹丽峰进去了
刘凯进去了
袁梦希进去了
袁梦希进去了
孙百鑫进去了
巩建进去了
王徐杰进去了
伍哲沂进去了
尹丽峰进去了
刘凯进去了
袁梦希进去了
袁梦希进去了
孙百鑫进去了
巩建进去了
王徐杰进去了
伍哲沂进去了
尹丽峰进去了
刘凯进去了
袁梦希进去了
袁梦希进去了
孙百鑫进去了
巩建进去了
王徐杰进去了
伍哲沂进去了
袁梦希进去了
袁梦希进去了
郑光宗进去了1次
袁梦希进去了8次
孙百鑫进去了3次
巩建进去了3次
王徐杰进去了4次
伍哲沂进去了4次
尹丽峰进去了3次
刘凯进去了4次
郑光宗次数排名第四
孙百鑫次数排名第三
巩建次数排名第三
尹丽峰次数排名第三
更多图片 小图 大图
组图打开中,请稍候......
回复 使用道具 举报
  1. import java.io.*;
  2. import java.util.*;
  3. public class heimeTest {
  4.         public static void main(String[] args) throws IOException {       
  5.                 List<Student> list=inputStudent();        //调用获取键盘录入的函数
  6.                 TreeMap tm=outputStudent(list);//输出录入的结果的函数
  7.                 getluckSttudent(tm);//获取第三的版主及第四和第六的。
  8.         }
  9.         public static List inputStudent() throws IOException//获取键盘录入的函数
  10.         {
  11.                 String line;
  12.                 Student stu=null;
  13.                 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//读取键盘录入
  14.                 List<Student> list=new ArrayList<Student>();//创建ArrayList此处用了泛型
  15.                 while((line=br.readLine())!=null)//利用循环读取键盘录入
  16.                 {
  17.                         if("over".equals(line))//结束标记over
  18.                                 break;
  19.                         String []s=line.split(" +");//切割字符串
  20.                         stu=new Student(s[0].trim(),s[1].trim());//去除字符串两端空格
  21.                         list.add(stu);//Student对象进入List表
  22.                 }
  23.                 return  list;//返回List
  24.         }
  25.         public static TreeMap outputStudent(List list)//输出录入的结果的函数
  26.         {
  27.                 final TreeMap<Student,Integer> tm=new TreeMap<Student,Integer>();//新建一个TreeMap集合此处用了泛型
  28.                 int len=list.size();
  29.                 for(int i=0;i<len;i++)//利用循环获取List中每个元素
  30.                 {
  31.                         Student s=(Student)list.remove(0);//弹出首元素
  32.                         System.out.println(s.name+"进去了");
  33.                         if(!(tm.containsKey(s)))//Student对象进入TreeMap
  34.                                 tm.put(s,1);
  35.                         else
  36.                         {
  37.                                 tm.put(s, tm.get(s)+1);
  38.                         }               
  39.                 }
  40.                 for(Student s:tm.keySet())//高级For循环遍历TreeMap
  41.                 {
  42.                         System.out.println(s.name+"进去了"+tm.get(s)+"次");
  43.                 }
  44.                 return tm;
  45.         }
  46.         public static void getluckSttudent(TreeMap tm)//获取第三的版主及第四和第六的。
  47.         {
  48.                 Set s=new TreeSet();
  49.                 Set<Student> set=tm.keySet();
  50.                 for(Student stu:set)
  51.                 {
  52.                    s.add((Integer)tm.get(stu));
  53.                 }
  54.                 Object[] arr=s.toArray();//获取TreeMap中的值的集合并转成数组
  55.                 Arrays.sort(arr);//对数组排序
  56.                 for(Student stu:set)
  57.                 {
  58.                         if(arr.length>=3)//如果数组长度大于3输出第3名
  59.                         {
  60.                                 if((Integer)tm.get(stu)==arr[arr.length-3])
  61.                                         System.out.println(stu.name+"次数排名第三");
  62.                         }
  63.                         if(arr.length>=4)//如果数组长度大于4输出第4名
  64.                         {
  65.                                 if((Integer)tm.get(stu)==arr[arr.length-4])
  66.                                         System.out.println(stu.name+"次数排名第四");
  67.                         }
  68.                         if(arr.length>=6)//如果数组长度大于6输出第6名
  69.                         {
  70.                                 if((Integer)tm.get(stu)==arr[arr.length-6])
  71.                                         System.out.println(stu.name+"次数排名第六");
  72.                         }       
  73.                 }
  74.         }
  75. }
  76. class Student implements Comparable//创建Student类并实现排序的接口
  77. {
  78.         String name;
  79.         String num;
  80.         Student(String name,String num)//构造函数
  81.         {
  82.                 this.name=name;this.num=num;
  83.         }
  84.         public int hashCode()//复写hashCode
  85.         {
  86.                 return num.hashCode();
  87.         }
  88.         public boolean equals(Student p1)//复写equals
  89.         {
  90.                 //Person1 p=(Person1)obj;
  91.                 return (this.name==p1.name)&&(this.num==p1.num);
  92.         }
  93.         public int compareTo(Object obj) {//复写compareTo
  94.                 Student stu=(Student)obj;
  95.                 return this.num.compareTo(stu.num);
  96.         }
  97. }
复制代码

点评

发错地了,那边已加分  发表于 2013-6-28 10:56
回复 使用道具 举报
来看看是什么题目。
回复 使用道具 举报
今天忙了一天,就写这道程序了。发现学习和实际写代码就是不一样啊!学会一些知识很容易,但写代码的时候就是另一回事了!写代码要非常注意一些小细节,比如我在写代码是把name写成了nname,一个小错误硬是找了几十分钟!
回复 使用道具 举报
多谢楼主
回复 使用道具 举报

亲,你似乎发错地方了……专门有个答案贴,在这里发答案是木有分的哦~
回复 使用道具 举报
先看下 瞅瞅
回复 使用道具 举报
好的,让我来看看什么题型
回复 使用道具 举报
droid 中级黑马 2013-6-27 20:28:40
72#
看看
{:3_46:}
回复 使用道具 举报
kan yi xia
回复 使用道具 举报
看下题先:D
回复 使用道具 举报
先看题,再说
回复 使用道具 举报
什么时候截止?
回复 使用道具 举报
看题哟哟哟哟
回复 使用道具 举报
看下题目吧!
回复 使用道具 举报
看一下什么题
回复 使用道具 举报
我会认真完成的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马