zoukankan      html  css  js  c++  java
  • Java测试开发--Set、Map、List三种集合(四)

    1.集合类型主要有3种:set(集)、list(列表)和map(映射)。

    2.三者关系

    3.Set

    set接口是Collection接口的一个子接口,是无序的,set去重,也就是说set中不存在两个这样的元素a1.equals(a2)结果为true。但是set去重的前提条件是集合对象要重写equals+ hashcode 两个方法。

    举个例子,首先先把对象的equals和hashCode方法注释掉,查看用set是否去重

     

    把对象的equals和hashCode方法放开,查看用set是否去重

     

     查看运行结果,两个“张三”只显示了一个,去重了。

    TreeSet:在集中以升序对对象排序的集的实现,这意味着从一个TreeSet对象获得第一个迭代器将按照升序来提供对象,TreeSet类使用了一个TreeMap

    下面来看一个例子,当需要从一个Set集合中以有序的方式抽取元素时,TreeSet实现会有用处,为了能顺利进行,添加到TreeSet的元素必须是可排序的。

    可以看到上面的输出是无序的,且没有重复,下面的输出就是按照首字母的顺序进行排序。

    4.List

    List接口继承了Collection接口是一个允许重复项的有序集合。

    有2种List,ArrayList和LinkedList,两种list的结构不一样,结构如图

    ArrayList:由数组实现的List,允许对元素进行快速随机访问,但是向List中间插入(这里的插入是向集合中间插入或正在扩容时)与移除元素的速度很慢。

    LinkedList:对顺序访问进行了优化,向List中间插入与删除的开销并不大,随机访问则相对较慢,(使用ArrayList代替)

    5、Map
    treeMap按照key值排序,LinkMap按读入的顺序排序

  • 相关阅读:
    【洛谷习题】公路修建
    priority_queue用法简记
    【洛谷习题】无线通讯网
    【SCOI2005】繁忙的都市
    第四周 3.20-3.26
    第三周 3.13-3.19
    第二周 3.6-3.12
    第一周 2.28-3.5
    第六周 2.21-2.27
    2018湘潭邀请赛 AFK题解 其他待补...
  • 原文地址:https://www.cnblogs.com/cyying/p/15012076.html
Copyright © 2011-2022 走看看