游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

Java集合类框架详解

  Java集合框架概述
  集合可以看作是一种容器,用来存储对象信息。所有集合类都位于java。util包下,但支持多线程的集合类位于java。util。concurrent包下。
  Java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:List、Set、Queue,因此Java集合大致也可分成List、Set、Queue、Map四种接口体系(注意:Map不是Collection的子接口)。
  其中:
  List代表了有序可重复集合,可直接根据元素的索引来访问;
  Set代表无序不可重复集合,只能根据元素本身来访问;
  Queue是队列集合;
  Map代表的是存储keyvalue对的集合,可根据元素的key来访问value。
  常见的实现类分别是ArrayList、LinkedList、ArrayQueue、HashSet、TreeSet、HashMap、TreeMap等。
  Java集合类常见接口及实现类
  01hrCollection接口
  Collection接口是最基本的集合接口,它不提供直接的实现,JavaSDK提供的类都是继承自Collection的子接口如List和Set。
  在Java中所有实现了Collection接口的类都必须提供两套标准的构造函数,一个是无参,用于创建一个空的Collection,一个是带有Collection参数的有参构造函数,用于创建一个新的Collection,这个新的Collection与传入进来的Collection具备相同的元素。
  02hrList接口
  List接口为Collection直接接口。List所代表的是有序的Collection,即它用某种特定的插入顺序来维护元素顺序。
  用户可以对列表中每个元素的插入位置进行精确地控制,同时可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
  实现List接口的集合主要有:ArrayList、LinkedList、Stack等。
  03hrMap接口
  Map与List、Set接口不同,它是由一系列键值对组成的集合,提供了key到Value的映射。同时它也没有继承Collection。
  在Map中它保证了key与value之间的一一对应关系。也就是说一个key对应一个value,所以它不能存在相同的key值,当然value值可以相同。
  实现map的有:HashMap、TreeMap、HashTable。
  ArraysList和LinkedList
  01hrArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
  02hr对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
  03hr对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList。因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。
  04hrArrayList的大小默认为10,每次扩容为1。5倍,即为intnewCapacityoldCapacity(oldCapacity1)。随着容器中的元素不断增加,容器的大小也会随着增加。
  在每次向容器中增加元素的同时都会进行容量检查,当快溢出时,就会进行扩容操作。所以如果我们明确所插入元素的多少,最好指定一个初始容量值,避免过多的进行扩容操作而浪费时间、效率。
  05hrArrayList中的size、isEmpty、get、set、iterator和listIterator操作都以固定时间运行。
  add操作以分摊的固定时间运行,也就是说,添加n个元素需要O(n)时间(由于要考虑到扩容,所以这不只是添加元素会带来分摊固定时间开销那样简单)。
  06hr同样实现List接口的LinkedList与ArrayList不同,LinkedList是一个双向链表。所以它除了有ArrayList的基本操作方法外还额外提供了get、remove、insert方法在LinkedList的首部或尾部。
  由于实现的方式不同,LinkedList不能随机访问,它所有的操作都是要按照双重链表的需要执行。在列表中索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。
  这样做的好处就是可以通过较低的代价在List中进行插入和删除操作。
  HashMap和TreeMap
  01hrHashMap
  以哈希表数据结构实现,查找对象时通过哈希函数计算其位置,它是为快速查询而设计的,其内部定义了一个hash表数组(Entry〔〕table),元素会通过哈希转换函数将元素的哈希地址转换成数组中存放的索引,如果有冲突,则使用散列链表的形式将所有相同哈希地址的元素串起来,可能通过查看HashMap。Entry的源码它是一个单链表结构。
  其不是同步的,且允许空值作为键和值。
  HashMap的数据结构为数组链表红黑树(冲突的链表多于8个时,就把这个链表转换成红黑树),初始容量是16,默认加载因子为0。75。
  HashMap的长度n为什么是2的整数次幂?一是为了减少hash冲突的概率,n为偶数最低位为0异或后结果必为偶数。
  其次是为了加快hash计算,比速度快;还有在JDK1。8中,扩容更方便,关注特殊位(n1会多出一位,然后关注和这位对齐的hash,0不变,1加一个扩容之前的n)。
  HashMap在JDK1。7中使用的是头插法,在并发put时出现Entry链表形成环形数据结构,导致死循环,为了解决这个问题,在JDK1。8中使用的是尾插法。
  如何保证HashMap的线程安全:
  一是Collections工具类中synchronizedCollection;
  二是采用装饰者模式实现map接口对HashMap进行封装;
  三是直接使用ConcurrentHashMap。
  02hrTreeMap
  TreeMap存储KV键值对,通过红黑树(RBtree)实现。
  TreeMap继承了NavigableMap接口,NavigableMap接口继承了SortedMap接口,可支持一系列的导航定位以及导航操作的方法,当然只是提供了接口,需要TreeMap自己去实现。
  TreeMap实现了Cloneable接口,可被克隆,实现了Serializable接口,可序列化。
  TreeMap因为是通过红黑树实现,红黑树结构天然支持排序,默认情况下通过Key值的自然顺序进行排序。
  对集合的选择
  01hr对List的选择
  对于随机查询与迭代遍历操作,数组比所有的容器都要快。所以在随机访问中一般使用ArrayList
  LinkedList使用双向链表对元素的增加和删除提供了非常好的支持,而ArrayList执行增加和删除元素需要进行元素位移。
  对于Vector而已,我们一般都是避免使用。
  将ArrayList当做首选,毕竟对于集合元素而已我们都是进行遍历,只有当程序的性能因为List的频繁插入和删除而降低时,再考虑LinkedList。
  02hr对Set的选择
  HashSet由于使用HashCode实现,所以在某种程度上来说它的性能永远比TreeSet要好,尤其是进行增加和查找操作。
  虽然TreeSet没有HashSet性能好,但是由于它可以维持元素的排序,所以它还是存在用武之地的。
  03hr对Map的选择
  HashMap与HashSet同样,支持快速查询。虽然HashTable速度的速度也不慢,但是在HashMap面前还是稍微慢了些,所以HashMap在查询方面可以取代HashTable。
  由于TreeMap需要维持内部元素的顺序,所以它通常要比HashMap和HashTable慢。

华为百万年薪天才少年再增两人,目前已累计招募17人7月6日,华中科技大学(以下华科)官方微信宣布,今年该校又有两位同学入选华为天才少年计划,三年内已有6人入选该计划。这也是华为第三批天才少年名单中率先被披露的两名,其中,华科电……张涛委员尽早尽快布局中国版星链卫星互联网澎湃新闻记者张静据中国电子报报道,全国政协委员、北京航空航天大学教授张涛日前表示,要建设高中低轨卫星协同组网、天地网络深度融合、空天地海一体化的网络,尽早尽快布局中国版星……36氪独家超级猩猩获3。6亿元D轮融资,推出私教业务,计划今作者:徐子编辑:张达36氪独家获悉,团操工作室品牌超级猩猩近日完成3。6亿元D轮融资,本轮由星界资本和曜为资本联合领投,东方弘泰资本跟投。数据来源:鲸准……大A十二月份行情预测去年的光伏,今年的风能,感觉氢能源的春天要来了,不仅仅是十二月份的行情,我觉得可能会走年级别大行情,绿色能源这条线我头氢能源一票。新能源汽车这条线,从锂矿锂电池整车配件、……五年以后手机真的会消失吗?准确的说,不会!现在是2018年,再过5年也就是2023年。短短5年时间,并不能够使手机发展到能够消失的地步,同样的,这个消失也表达着不同程度上的发展。消失,可以是手机这个载体……全新奥迪Q5L家族亮相粤港澳大湾区车展,在B级豪华SUV中排中国是奥迪汽车全球最大单一市场,占比45以上,广东省又是中国排前三市场,其中A4L销量排第一位,A6L排第二位,Q5L排第三,在2021年粤港澳大湾区车展上,奥迪带来全新的Q5……聚辰股份全球手机摄像头存储芯片龙头,怎奈大股东不光彩的履历选股理由:科创板营收利润稳定增长证券代码:688123评级:BBB(因大股东背景从A下调至BBB)本文分为六部分:一、主营业务;二、公司治理;三、财务分析;四、核心……一文解惑一加新老机型同在线,双十一该如何选机?今年的双十一比往年来的更早一些,目前已经进入了交定金的环节,有多少朋友已经准备好荷包、支付定金了?尤其是每年购物节的大头手机产品,各位已经选好了吗?与往年不同,今年下半年……群雄角逐彩色水墨屏阅读市场海信护眼阅读手机抢占先机继1月份,海信手机在CES2020国际消费电子展发布全球首款彩色水墨屏阅读手机后,3月19日科大讯飞、掌阅相继发布彩色水墨屏阅读器规划布局,让护眼阅读这个细分电子领域市场,呈现……盘点最刺激的互联网大战,阿里起诉腾讯获赔43万元排倒数第一?中国互联网表面看起来风平浪静,但是实际情况却是风起云涌,电商、外卖、O2O、网约车、3Q大战、共享经济、新零售、投影仪大战波澜壮阔的烧钱大战此起彼伏,影响深远。原来阿里起诉腾讯……让你的音响器材投资发挥最大价值意大利高级机架BAS(Bassocontinuo)莱雅Lyra2。1音响层架来自麦景图70周年金光闪闪套装用户的热烈好评,搭配套装的意大利Bassoconti……Reno5未售先火!众多大V被时间色圈粉,颜党最爱俗话说,看人先看脸,其实手机也一样,一部外观好看的手机往往更容易被人接受。尤其对于颜值党来说,外观更是成为他们购机时的重要参考因素。基于这样的需求,各手机厂商也是极尽所能的在外……
如果宇宙中存在一种智慧生物,身高数百米,体重上千吨。人类在其宇宙中存在身高数百米体重数千吨的智慧生物并不可怕,因身材体重的关系这种智慧生物很难到达地球。既使到达了地球,也不可能称霸世界,人类可以发颗导弹经过他的嘴到达他的肚子里,炸烂他的……小米MIXFOLD2消息搭载8英寸2。5KLTPO屏微博博主数码闲聊站再次对小米未来新机进行爆料。他称,小米品牌现在进入排期规划的还有两台骁龙8Gen1平台高分屏旗舰:一个为6。7英寸2K120HzLTPO屏幕;另一为8英寸2。……手机笔记本充电,一个就够啦!绿联氮化镓2C1A65W充电器评最近一两年来,氮化镓充电器是个话题度很高的产品,这类充电器相比普通款型来说,除了拥有更高的输出功率,体积控制、转化率和发热控制都有着得天独厚的优势。国内知名周边生产厂商绿联近期……谷歌Pixel6定档9月14日!赶在iPhone13前,看来马上就要进入9月份了,手机市场上的竞争也越发激烈了。近段时间,又有不少手机厂商官宣了新品的发布时间,而备受用户期待的谷歌Pixel6系列也正式定档9月13日。没记错的话,iPh……iPhone12Pro实拍样张赏析,1200万像素不输安卓1大家知道苹果从iPhone6s开始,一直到最新的iPhone12系列,都是在用1200万像素的传感器。而目前安卓这边1亿像素都很普遍。今天就带大家赏析一组由iPhone12Pr……画面更清晰屏幕更大?多家巨头CES展推电视新品西班牙《世界报》网站近日报道称,尽管疫情仍未消散,导致今年的CES参展商和公众人数减少,活动也减少,但其魅力不减。2022年,重大的技术进步不仅会转化为更好的电视画面质量,还会……2022款GenesisGV60EV曝光,支持人脸识别,自动在日益重视环保的今天,电动汽车是新能源汽车领域发展最好的一个类别,这其中有我们大家熟悉的Tesla、小鹏汽车、比亚迪汉EV等,也有专门打造豪华汽车的Genesis(捷尼赛思),……锐龙5800x搭配RTX3060Ti永劫无间游戏直播电脑配置《永劫无间》作为一款国风版的吃鸡游戏,一经上线就收获了很多粉丝用户,游戏主播们也纷纷加入到这款游戏中。下面电脑配置网就为大家带来一套可以直播《永劫无间》的配置单。根据官方……苹果13mini和苹果12mini相比较,具体做了哪些提升?如果让小芳从这两款手机中选择一款手机进行购买,我个人是会更加倾向于苹果13mini这款手机会更多一些的。毕竟苹果13mini这款手机在售价、性能和续航能力等多个方面都有了较大的……苹果iphone13pro和iphone13promax区别这两款机型appleiphone13pro和iphone13promax区别主要在屏幕尺寸和续航上,其它配置基本一致,下面请看它们之间的不同点与相同点。一、相同点1……OPPO秋季新品发布会官宣9月16日上周,ColorOS官方发布消息称,ColorOS12发布会,9月中下旬见确认了新品发布活动的大致时间。现在,关于这一发布活动,OPPO官方也给出了更确切的回应。Colo……华为为什么不出几款便宜的手机,提高鸿蒙市场占有率?别着急,很快华为就不会出品高端手机了,而是改为出品中低档手机了,当然价钱还要比着友商的旗舰机,但能吹嘘的可能就剩下一个拍照功能了。目前华为找不到代工厂为其代工,且买不到可……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网