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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© majunm 中级黑马   /  2013-6-28 00:07  /  1370 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. <P>package majun.jun;

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

  5. public class TestMapDemo {

  6. /**
  7. * @param args
  8. */
  9. public static void main(String[] args) {
  10. Student[] stu=new Student[]{new Student("伍哲沂","201306266"),new Student("伍哲沂","201306266"),new Student("伍哲沂","20186266")};
  11. Map<Student,Integer> map=new TreeMap<Student,Integer>();
  12. // map.put(new Student("伍哲沂","201306266"), 1);
  13. // map.put(new Student("伍哲沂","201306266"), 33);
  14. // map.put(new Student("伍哲沂","2018886266"), 1);
  15. // System.out.println(stu[0].equals(stu[1]));
  16. for(int j=0;j<stu.length;j++){

  17. Integer value=map.get(stu[j]);

  18. if(value==null){
  19. map.put(stu[j], 1);
  20. value=1;
  21. stu[j].setCount(value);
  22. // System.out.println(value);
  23. }else{
  24. // System.out.println("1111"+value);
  25. value=value+1;
  26. map.put(stu[j], value);
  27. stu[j].setCount(value);
  28. }
  29. }
  30. /*for(int j=0;j<stu.length;j++){
  31. Integer value=map.get(stu[j]);
  32. if(value==null){
  33. map.put(stu[j], 1);
  34. value=1;
  35. stu[j].setCount(value);
  36. // System.out.println(value);
  37. }else{
  38. // System.out.println("1111"+value);
  39. value=value+1;
  40. map.put(stu[j], value);
  41. stu[j].setCount(value);
  42. }
  43. }*/
  44. for(Entry<Student,Integer> entry:map.entrySet()){
  45. Student s=entry.getKey();
  46. Integer value=entry.getValue();
  47. System.out.println(s);
  48. }
  49. }</P>
  50. <P><FONT color=lime>怎么让结果运行为 </FONT></P>
  51. <P><FONT color=lime>姓名:伍哲沂  学号:20186266  次数1--value: 1
  52. 姓名:伍哲沂  学号:201306266  次数1--value: 2</FONT></P>
  53. <P><FONT color=lime>实际结果是:</FONT></P>
  54. <P>姓名:伍哲沂  学号:20186266  次数1--value: 1
  55. 姓名:伍哲沂  学号:201306266  次数1--value: 1
  56. 姓名:伍哲沂  学号:201306266  次数1--value: 1</P>
  57. <P>=====================================================================</P>
  58. <P>hash equals 都复写过了 comparable接口也实现了 对象竟然重复 搞不明白 求大神!</P>
  59. <P>如果这样添加对象</P>
  60. <P> map.put(new Student("伍哲沂","201306266"), 1);
  61. map.put(new Student("伍哲沂","201306266"), 33);
  62. map.put(new Student("伍哲沂","2018886266"), 1);</P>
  63. <P>结果是这样:</P>
  64. <P><FONT color=#00ff00>姓名:伍哲沂 学号:20186266 次数1--value: 1
  65. 姓名:伍哲沂 学号:201306266 次数1--value: 33</FONT></P>
  66. <P>=====================================================================
  67. </P>
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马