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按读入的顺序排序

  • 相关阅读:
    SQL Server执行计划的理解
    SQL Server Profiler工具
    利用SQL Profiler处理开销较大的查询
    查询开销
    详解索引连接类型
    详解执行计划
    数据库引擎调整顾问
    six.moves的用法
    ※数据结构※→☆非线性结构(tree)☆============二叉树 顺序存储结构(tree binary sequence)(十九)
    C++ 线程的创建,挂起,唤醒,终止
  • 原文地址:https://www.cnblogs.com/cyying/p/15012076.html
Copyright © 2011-2022 走看看