phpcms网站备份,做移动网站优,小程序官网平台入口,app介绍模板/**
使用各种set存储多个学生信息问题1#xff1a;为什么课程名称#xff08;String#xff09;放入到HashSet、LinkedHashSet都可以保证唯一性#xff0c;但是学生#xff08;Student#xff09;放入到HashSet、LinkedHashSet#xff0c;却无法实现唯一性。问题2…/**
使用各种set存储多个学生信息问题1为什么课程名称String放入到HashSet、LinkedHashSet都可以保证唯一性但是学生Student放入到HashSet、LinkedHashSet却无法实现唯一性。问题2为什么课程名称String放入到TreeSet都可以保证唯一性、有序性但是学生Student放入到TreeSet却直接抛出异常。java.lang.ClassCastException: com.bjsxt.set.Student cannot be cast to java.lang.Comparable思考 是否因为String类是系统类Student是用户自定义类String类应该已经做了某些操作但是Student类还没有做解答问题1任意对象放入HashSet、LinkedHashSet等底层结构有哈希表的集合中必须重写两个方法hashCode() equals()String类已经重写了这两个方法而Student类没有重写这两个方法解答问题2任意对象放入了TreeSet等底层结构是红黑树的集合中都需要实现Comparable接口并实现其方法。问题3Comparable接口至多指定一种规则如果希望按照更多的排序规则放入TreeSet等集中该怎么办解决可以使用外部比较器Comparator。
*/ SetMap.EntryInteger,Student entrySet map.entrySet();Iterator Map.EntryInteger,Studentit entrySet.iterator();while(it.hasNext()){Map.EntryInteger,Student entry it.next();Student stu entry.getValue();System.out.println(stu);}