实训17 2018.04.17

Posted goxxiv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实训17 2018.04.17相关的知识,希望对你有一定的参考价值。

Collection及其部分子类:

技术分享图片

  List的特点:有索引,有序(按照存入顺序进行输出),可出现重复元素;

  Set的特点:没有索引,没有重复元素,不一定有序(HashSet的存储是无序的,LinkedHashSet的存储是有序的)。

  List有三种遍历方式:

    for(int ),foreach,Iterator;

  而Set没有第一种,因为它没有索引。

   

Set:

  对于Set作些说明:

    Set的实现类HashSet使用到hashcode()方法。

    hashcode()方法:

      Object中的hashcode()方法:

    技术分享图片

        用native修饰,没有给出实现的具体代码。

      String中的hashcode()方法:

        技术分享图片

        在代码中,hash的初始值为0,value是传入的字符串的字符数组(private final char value[])表示,例如"abc"存入value[]中,那么value[0]=‘a‘,value[1]=‘b‘,value[2]=‘c‘。经过判断之后,令val[]=value[],进行循环:h=31*0+97=97,(其中,97是‘a‘的ASCII值);h=31*97+98=3105,(其中,98是‘b‘的ASCII值);h=31*3105+99=96354。这就是“abc”的hashcode()得到的值。

      技术分享图片

 

      结果如下:

      技术分享图片

      HashSet使用数组加链表的存储结果。当使用HashSet存储时,初始设置数组长度为16。对第一个元素“a”进行添加时,计算“a”的hashcode()值为97,97mod16=1。数组的第一个位置下面链接的链表中没有“a”这个值,所以把这个值链接在第1个元素下面。

      技术分享图片

 

      

      

 

以上是关于实训17 2018.04.17的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE实训day03总结

腾讯云计算实训中心方案

开学第一天,规章制度,教学大纲

实训报告过程怎么写

实训报告总结范文

计算机实训报告范文5篇