码迷,mamicode.com
首页 > 其他好文 > 详细

实训17 2018.04.17

时间:2018-04-17 16:49:55      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:子类   重复   alt   分享图片   实训   linked   一个   有序   src   

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

标签:子类   重复   alt   分享图片   实训   linked   一个   有序   src   

原文地址:https://www.cnblogs.com/goxxiv/p/8867236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!