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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看下题先
回复 使用道具 举报
貌似很难的样子哦
回复 使用道具 举报
第一题
  1. package majun.jun;

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

  6. public class RoleOutStudent {

  7.         /**
  8.          * role 规则
  9.          * out  输出
  10.          * RoleOutStudent  规则输出学生类
  11.          */
  12.         public static void main(String[] args) {
  13.                         StringBuilder sb = getStringBuilder();//键盘录入内容转换成 StringBulider
  14.                         Student[] stu = toStudentArray(sb);//获取对象数组
  15.                         roleOut(stu);//检查对象数组重复情况 value的值 即是对象出现的次数
  16.         }
  17.         private static Student[] toStudentArray(StringBuilder sb) {
  18.                 String lines=new String(sb);
  19.                 System.out.println(sb);
  20.                 String[] str=lines.split("( )+");//用空格切割
  21.                 Student[] stu=new Student[str.length/2];//观察题目知道 字符串数组是学生数组长度的2倍
  22.                 int y=0;
  23. //               
  24.                 for(int x=0;x<str.length;x+=2){
  25.                         stu[y]=new Student(str[x],str[x+1]);
  26.                         y++;
  27.                 }
  28.                 return stu;
  29.         }
  30.         public static void roleOut(Student[] stu) {
  31.                 Map<Student,Integer> map=new TreeMap<Student,Integer>();
  32. //        对对象数组经行检查 发现重复对象 改变键值即可       
  33.                 for(int x=0;x<stu.length;x++){
  34.                         if(!map.containsKey(stu[x])){
  35.                                 map.put(stu[x], 1);
  36.                         }else{
  37.                                 map.put(stu[x], map.get(stu[x])+1);
  38.                         }
  39.                 }
  40. //                键的值即是学生对象出现的次数
  41.                 for(Entry<Student,Integer> entry:map.entrySet()){
  42.                         Student s=entry.getKey();
  43.                         Integer value=entry.getValue();
  44.                         s.setCount(value);
  45.                         System.out.println(s);
  46.                 }
  47.         }
  48.         private static StringBuilder getStringBuilder() {
  49.                 Scanner scan=new Scanner(System.in);//控制台录入题目内容
  50.                 StringBuilder sb=new StringBuilder();
  51.                 String line=null;
  52. //                观察题目 需要15行 故循环15次
  53.                 for(int i=0;i<15;i++){
  54.                         line=scan.nextLine();
  55.                         sb.append(line+" ");
  56.                 }
  57.                 return sb;
  58.         }
  59. }
  60. package majun.jun;

  61. import java.util.Comparator;

  62. public class Student implements Comparable<Student>{

  63.         /**
  64.          *
  65.          */
  66.         String name;
  67.         String id;
  68.         int count;
  69.         private Object instansOf;
  70.         Student(String name,String id){
  71.                 this.name=name;
  72.                 this.id=id;
  73.         }
  74.         public String getName() {
  75.                 return name;
  76.         }
  77.         public void setName(String name) {
  78.                 this.name = name;
  79.         }
  80.         public String getId() {
  81.                 return id;
  82.         }
  83.         public void setId(String id) {
  84.                 this.id = id;
  85.         }
  86.         public int getCount() {
  87.                 return count;
  88.         }
  89.         public void setCount(int count) {
  90.                 this.count = count;
  91.         }
  92.        
  93.         public String toString(){
  94.                 return "姓名:"+this.name+"  学号:"+this.id+"  次数"+this.count;
  95.         }
  96.         @Override
  97.         public int compareTo(Student s) {
  98.                 /*
  99.                  * 有泛型就不需要判断
  100.                  * if(!(s instanceof Student)){
  101.                         throw new RuntimeException("类型不匹配!");
  102.                         }*/
  103.                
  104.                 int num=new Integer(this.count).compareTo(new Integer(s.count));
  105.                 if(num==0){
  106.                         return s.id.compareTo(this.id);
  107.                 }
  108.                 return num;
  109.         }
  110.         @Override
  111.         public int hashCode() {
  112.                 return name.hashCode()+id.hashCode();
  113.         }
  114.         @Override
  115.         public boolean equals(Object obj) {
  116.                 if(!(obj instanceof Student)){
  117.                         throw new ClassCastException("类型不匹配!");
  118.                 }
  119.                 Student s=(Student)obj;
  120.                 //当name id  相等时 视为同一个对象
  121.                 return this.name.equals(s.name) && this.id.equals(s.id);
  122.         }
  123.        
  124. //        强制让学生类具有比较性, 当次数相同时比较 id的自然顺序
  125. /*@Override
  126. public int compare(Student o1, Student o2) {
  127.        
  128.         int num=new Integer(o1.count).compareTo(o2.count);
  129.         if(num==0){
  130.                 return o1.getId().compareTo(o2.getId());
  131.         }
  132.         return num;
  133. }
  134.         */
  135. }
复制代码
还有点小毛病 我在看看

捕获111.JPG (56.63 KB, 下载次数: 0)

捕获111.JPG
回复 使用道具 举报
来看看都是什么题目
回复 使用道具 举报
先看看题是神马样子滴
回复 使用道具 举报
看看题目
回复 使用道具 举报
试试看看实力
回复 使用道具 举报
这个必须支持的啊
回复 使用道具 举报
终于找到你了
回复 使用道具 举报
看一下!~~
回复 使用道具 举报
技术分呀
回复 使用道具 举报
{:soso_e182:}看看题目
回复 使用道具 举报
看一下神马题目
回复 使用道具 举报
发现的晚了。。。 我来也来看一看吧
回复 使用道具 举报
看看呗虽然不懂
回复 使用道具 举报
啥问题这么贵啊
回复 使用道具 举报
看看吧..哎
回复 使用道具 举报
寻寻觅觅
回复 使用道具 举报
mulua 中级黑马 2013-6-28 17:50:27
99#
看看啊   
回复 使用道具 举报
还能买答案啊?- -哈哈,,,怎么买,找我买嘻嘻
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马