当前位置: 首页 > wzjs >正文

怎样创建基本的网站最近一周新闻大事件

怎样创建基本的网站,最近一周新闻大事件,做类似返利网的网站,高端h5手机网站设计案例文章目录 1、集合框架2、ArrayList、LinkedList3、HashMap、红黑树4、HashMap的put流程 1、集合框架 两条大支线: ①Collection接口:最基本的集合框架,提供添加、删除、清空等基本操作,主要有三个子接口:i&#xff1a…

文章目录

  • 1、集合框架
  • 2、ArrayList、LinkedList
  • 3、HashMap、红黑树
  • 4、HashMap的put流程

1、集合框架

两条大支线:
①Collection接口:最基本的集合框架,提供添加、删除、清空等基本操作,主要有三个子接口:i:List:一个有序的集合,包含重复元素。实现类包括ArrayList、LinkedList。ii:Set:一个不包含重复元素集合。实现类包括HashSet、LinkedHashSet、TreeSet。iii:Queue:一个用于保持元素队列集合。实现类包括PriorityQueue、ArrayDeque。
②Map接口:表示键值对的集合,一个键映射到一个值。键不能重复,每个键只能对应一个值。Map接口的实现类包括HashMap、LinkedHashMap、TreeMap。

在这里插入图片描述

集合框架架常用工具类:
集合框架位于java.util包下,提供两个常用工具类:i:Collections:提供一些对集合进行排序、二分查找、同步的静态方法。ii:Arrays:提供一些对数组进行排序、打印、和 List 进行转换的静态方法。

2、ArrayList、LinkedList

①ArrayList基于数组实现,LinkedList基于链表实现。ArrayList利于查找,支持随机访问,LinkedList利于增删。i:ArrayList通过数组下标获取,时间复杂度是O(1);LinkedList需要遍历链表,时间复杂度是O(n)。ii:ArrayList如果增删的是数组尾部,时间复杂度是O(1);如果add的时候涉及到扩容,时间复杂度会上升到O(n)。插入中间位置,把插入位置后的元素向前或者向后移动,甚至还有可能触发扩容,效率低很多,变成O(n)。②LinkedList是链表结构,插入和删除只需要改变前置节点、后置节点和插入节点的引用,不需要移动元素。i:在链表的头部插入或者删除,时间复杂度是O(1)。ii:在链表的中间插入或者删除,时间复杂度是O(n),因为需要遍历链表找到插入位置。iii:如果是在链表的尾部插入或者删除,时间复杂度是O(1)。
③使用场景
ArrayList适用于:i:随机访问频繁:需要频繁通过索引访问元素的场景。ii:读取操作远多于写入操作:如存储不经常改变的列表。iii:末尾添加元素:需要频繁在列表末尾添加元素的场景。LinkedList适用于:i:频繁插入和删除:在列表中间频繁插入和删除元素的场景。ii:不需要快速随机访问:顺序访问多于随机访问的场景。iii:队列和栈:由于其双向链表的特性,LinkedList实现队列(FIFO)和栈(LIFO)

在这里插入图片描述

④ArrayList扩容机制i:当往ArrayList中添加元素时,会先检查是否需要扩容,如果当前容量+1超过数组长度,会进行扩容。ii:扩容后的新数组长度是原来的1.5倍,然后再把原数组的值拷贝到新数组中。

在这里插入图片描述

⑤ArrayList序列化i:在ArrayList中,writeObject方法被重写,用于自定义序列化逻辑:只序列化有效数据,因为elementData数组容量一般大于实际的元素数量,声明时候加transient关键字。ii:出于效率的考虑,不直接序列化数组。数组可能长度100,但实际只用50,剩下50没用到,不需要序列化。
⑥实现ArrayList线程安全方法i:Collections.synchronizedList()方法,通过synchronized关键字加锁实现。返回一个线程安全的 List。SynchronizedList list = Collections.synchronizedList(new ArrayList());ii:CopyOnWriteArrayList:遵循写时复制原则。允许并发读,读操作是无锁。a:往一个容器添加元素,不直接往容器中添加。先复制出一个新的容器,然后在新容器里添加元素,添加完之后,再将原容器引用指向新容器。多个线程在读的时候,不需要加锁,因为当前容器不会添加任何元素。这样实现线程安全。

3、HashMap、红黑树

①JDK8中HashMap的数据结构:数组+链表+红黑树。初值容量:16、负载因子:0.75.扩容为原来的2倍。

在这里插入图片描述

②红黑树是自平衡的二叉查找树,通过左旋和右旋以及染色保持平衡:i:每个节点要么是红色,要么是黑色;ii:根节点永远是黑色;iii:所有的叶子节点都是是黑色的(下图中的 NULL 节点);iv:红色节点的子节点一定是黑色的;v:从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。

在这里插入图片描述

使用红黑树原因:i:二叉树每个节点最多有两个子节点,容易出现极端情况。插入数据有序,二叉树就会退化成链表,查询效率O(n)。ii:平衡二叉树要求更高,左右子树高度差为1,保证极佳查找效率,但在进行插入和删除时,频繁旋转维持树平衡,维护成本更高。iii:链表复杂度是O(n),当链表长度较长时,查找性能会下降。红黑树是一种折中的方案,查找、插入、删除的时间复杂度O(log n)。

4、HashMap的put流程

哈希寻址 → 处理哈希冲突(链表还是红黑树)→ 判断是否需要扩容 → 插入/覆盖节点。

在这里插入图片描述

http://www.dtcms.com/wzjs/41750.html

相关文章:

  • 固镇建设局网站seo查询网站
  • 江宁区住房和城乡建设局网站谷歌网页
  • 浙江可以做会计题目的网站网址链接
  • 网站建设方案选公司关键词在线挖掘网站
  • ps怎么做网站首页和超链接宁波网站推广找哪家
  • 包头网站建设设计网络优化大师下载
  • wordpress新版编辑seo优化的主要任务包括
  • 建设委员会网站沈阳百度seo排名优化软件
  • flask做的网站项目苏州seo建站
  • 安徽网站建设哪家好网站推广模式
  • 网站动态交互武汉企业网站推广
  • 网站背景尺寸核心关键词如何优化
  • 章丘做网站优化深圳网络营销软件
  • 烟台建设协会网站湖南手机版建站系统开发
  • 网站做专题页面商品推广软文范例100字
  • 网站sem优化怎么做宁夏百度公司
  • 高性能网站建设进阶指南:web开发者性能优化最佳实践 pdf高级搜索技巧
  • 如果建设一个网站宁波建站模板系统
  • 商城网站开发公司线上推广宣传方式有哪些
  • 怎么做网站里的悬浮窗口沧州seo公司
  • 泉州网站建设有哪些漂亮的网页设计
  • 商务网站需求说明书seo怎么做关键词排名
  • 手机网站域名哪里注册今日头条重大消息
  • 微信分销网站建设哪家好seo排名优化培训怎样
  • 成都门户网站建设重庆seo网络营销
  • 腾讯企业邮箱邮箱seo基础理论
  • 淘客网站怎么做返利品牌推广的步骤和技巧
  • 网站域名想更换要怎么做石家庄百度seo
  • 专业建站深圳网站开发制作
  • 深圳建网站兴田德润团队企业网站设计公司