已采纳回答 / 小草好闲
这个问题应该是你用的JDK是1.8的吧,因为在JDK8版java.util.HashMap内的hash算法比JDK7版的混淆程度低,在[0, 2^32-1]范围内经过HashMap.hash()之后还是得到自己,所以元素值很小时还是有序的。可以试试把元素值加大就行了,结果就会是无序的了。
2017-02-08
最赞回答 / cesc7
从数据结构角度来说,其实你每次向哈希集中add一个元素,计算机都会通过哈希函数为其计算一个唯一的哈希值,并且将这个哈希值与集合中现有元素的哈希值比较,来保证集合中的元素不重复。同样地,哈希集的底层存储结构中,实际上是按照元素的哈希值从小到大“有序”存储的,只不过这个顺序和你输入的元素顺序不一定相同,因此我们说哈希集是无序的。但是无序不代表随机,哈希集输出时通常是按照哈希值的大小输出的,所以你每次输出的结果都是一样的。(至于视频中老师每次输出结果都不一样,应该是和编译器还有jdk版本有关吧,不同的版本哈希算...
2017-02-08
已采纳回答 / 慕粉1221151877
string.insert(11,"#")可以理解为新插入的"#"会成为该string的第11位. 另外请注意string的index是从0开始算的, 而不是1.
2017-02-07
已采纳回答 / ziom
Exception分为两类:一种是CheckedException,一种是UncheckedException。这两种Exception的区别主要是CheckedException需要用try...catch...显式的捕获,而UncheckedException不需要捕获
已采纳回答 / wakinzc
亲,System.out.println(object); 你这直接输出Object类型的对象是不是不合适呀。如果大家都知道lis中的item是String类型还好说,如果不知道的话 别人看来会很迷茫,没法维护了。
2017-02-07
已采纳回答 / eq361
name的类型为String,String类的compareTo()方法已经实现了,按升序排列。调换位置,当然会换序,比如2-1=1返回正值,1-2=-1,返回负值
2017-02-02
已采纳回答 / enthusiastic
你用containsValue()方法查询是要根据你的Map定义的泛型来决定,你在Map类型的students中的value就是Student类,所以传递参数肯定也要是Student类的对象,而不是String name。简单来说就是,你查students的内部元素,要查找是否存在某个元素,也应该与students定义类型一致,否则肯定找不到。主要看你定义的泛型public Map<String,Student> students;