zoukankan      html  css  js  c++  java
  • ArrayList、HashMap学习,java分布式架构学习

    1、ArrayList:

    为什么ArrayList的随机访问速度较快,删除,新增速度较慢呢?
    答:ArayList是随机访问速度较快,并不是访问速度较快,这一点一定要搞清楚,为什么呢?很简单,刚才再源码分析的时候可以看出,通过下标获取元素时间复杂度为:O(1),但是通过元素查找元素的话,时间复杂度就上升到:O(n)了,原因是因为需要循环比较,不像下标可以直接获取,新增速度较慢是因为每次新增的时候都会需要判断数组的大小是否还足够添加元素,是否需要扩容,扩容的时候就需要数据拷贝,删除分两种情况,通过下标删除:删除较快,但是删除之后数组就不连续了,这个时候就需要对数组做处理,处理的方式就是数据拷贝,拷贝到一个新的数组,然后再放回到原数组,通过元素名删除和通过下标删除类似,但是多了一个循环,对比元素名是否相同,所以删除、新增相对来说较慢。

    注意点:如果知道ArrayList使用的容量,声明的时候最好能指定长度,防止扩容中的数据拷贝;

    2、HashMap:

    默认大小为16;默认扩容因子:0.75 

    当第一次调用put()时,会进行一次resize(),resize主要作用:
    1.扩容。
    2.分配容器大小。
    3.分配扩容的阈值。
    4.如果发生扩容,数据拷贝。

    注意:默认大小的16只是阈值,其实当第一次put时候,大小为12;

    资料来源:卖托儿索的小火柴

    3:java分布式架构:

  • 相关阅读:
    web服务器IIS 64位无法调用32位驱动问题
    asp.net临时文件的重定向
    手机归属地演示代码
    空气质量监测演示代码
    地图坐标服务
    车辆违章查询演示代码
    Python第二天
    python第七天
    python操作MongoDB
    Python第一天
  • 原文地址:https://www.cnblogs.com/tengri-fighting/p/12707194.html
Copyright © 2011-2022 走看看