北京网站建设公司哪家实惠wordpress顶部菜单哪里设置

news/2025/9/24 1:51:20/文章来源:
北京网站建设公司哪家实惠,wordpress顶部菜单哪里设置,图标设计免费 logo,临猗网站建设引言 对于 Collection 集合及其实现类都有 removeAll(Collection? c)。 对于ArrayList 的实例对象#xff0c;在数据比较多的情况下#xff0c;方法 removeAll() 的传参 c 的类型是 HashSet会比是 ArrayList 的情况快的多。 原因 我们来细看一下ArrayList类的re…引言 对于 Collection 集合及其实现类都有 removeAll(Collection? c)。 对于ArrayList 的实例对象在数据比较多的情况下方法 removeAll() 的传参 c 的类型是 HashSet会比是 ArrayList 的情况快的多。 原因 我们来细看一下ArrayList类的removeAll()方法实现的伪代码。 如arrayList.removeAll(subList);// 遍历底层数组将不需要删除的元素放在数组前面后面的全部置为 null // w 为要删除和不删除的分界线 int w 0; for(var value in 该 arrayList 的底层数组){if(!subList.contains(value)){该 arrayList 的底层数组 [w] value;w;} }这里影响速率关键的一步是subList.contains(value) 这是因为contains()方法在不同类中的实现是存在差异的。 对于 ArrayList.contains()它的实现是调用 indexOf()一个一个地遍历查找。最坏时间复杂度为O(总数据量)。 而对于 HashSet.contains()由于 HashSet 的底层是 HashMap因此实际调用的是 HashMap 的 containsKey()方法该方法是通过哈希计算的方式去查询的因此速度十分快。最坏的时间复杂度约为O(最长链表长度)而链表长度一般不会过大。 使用方法 在数据量比较大的的情况下使用arrayList.removeAll(subList)时可以将subList封装为HashSet arrayList.removeAll(new HashSet(subList));速度实测 数据量ArrayListHashSetLinkedList10 万1094 毫秒6 毫秒1133 毫秒20 万4140毫秒8 毫秒4241 毫秒50 万51431毫秒30 毫秒34380 毫秒100 万140444 毫秒36 毫秒179465 毫秒500 万9130706 毫秒79 毫秒10549229 毫秒 测试用的代码 public class RemoveAllTest {public static void main(String[] args) {ArrayListInteger arrayList new ArrayList();for (int i 0; i 5000000; i) {arrayList.add(i);}ArrayListInteger subList new ArrayList();for (int i 0; i 5000000; i) {subList.add(i);i 2;}// 测试入参为 ArrayList 类型时 removeAll() 的性能long startTime System.currentTimeMillis();arrayList.removeAll(subList);long endTime System.currentTimeMillis();System.out.println(ArrayList 耗时 (endTime - startTime));// 测试入参为 HashSet 类型时 removeAll() 的性能ArrayListInteger arrayList2 new ArrayList();for (int i 0; i 5000000; i) {arrayList2.add(i);}startTime System.currentTimeMillis();arrayList2.removeAll(new HashSet(subList));endTime System.currentTimeMillis();System.out.println(HashSet 耗时 (endTime - startTime));// 测试将 ArrayList 类型转成 LinkedList 类型ArrayListInteger arrayList3 new ArrayList();for (int i 0; i 5000000; i) {arrayList3.add(i);}startTime System.currentTimeMillis();new LinkedList(arrayList3).removeAll(subList);endTime System.currentTimeMillis();System.out.println(LinkedList 耗时 (endTime - startTime));} }HashSet 、LinkedList 中 removeAll() 方法的区别 不同类的 removeAll() 方法实现不同可以看到对于 HashSet 和 LinkedList他们的 removeAll() 方法是通过父类或超父类的迭代器进行实现的而 ArrayList 是自己通过 for 循环进行了实现。 HashSet 内部实现 依托于 AbstractSet 类的 removeAll(Collection? c) 方法实现的逻辑是 先调原集合对象 HashSet 和 removeAll(Collection? c) 方法中传入的参数 c 的 size() 方法用来判断谁包含的元素更多。 如果原集合对象的元素数量 c 中元素数量那么调用 c 的代器去遍历 c 查看元素是否包含在原集合中并使用原集合的 remove() 方法去删除元素。时间复杂度为 O(n)。 如果原集合对象的元素数量 c 中元素数量那么调用原集合对象的迭代器去遍历原集合检查元素是否包含在 c 中并调用原集合迭代器的 remove() 方法去删除元素。这里的时间复杂度与集合 c 的 contains() 方法的实现有关 如果 c 是一个 ArrayListcontains() 方法的时间复杂度是 O( m )。因此从集合 HashSet 中删除 ArrayList 中存在的所有元素的总体时间复杂度为 O( n * m )。 如果 c 再次是 HashSet则 contains() 方法的时间复杂度为 O(1)。因此从集合 HashSet 中删除 HashSet 中存在的所有元素的总体时间复杂度为 O( n )。 public boolean removeAll(Collection? c) {Objects.requireNonNull(c);boolean modified false;if (size() c.size()) {for (Iterator? i c.iterator(); i.hasNext(); )modified | remove(i.next());} else {for (Iterator? i iterator(); i.hasNext(); ) {if (c.contains(i.next())) {i.remove();modified true;}}}return modified; }LinkedList 内部实现 public boolean removeAll(Collection? c) {Objects.requireNonNull(c);boolean modified false;Iterator? it iterator();while (it.hasNext()) {if (c.contains(it.next())) {it.remove();modified true;}}return modified; }通过 contains() 方法来判断是否存在相同的元素效率与 c 的类型有关。 参考 为什么arrayList.removeAll(set)的速度远高于arrayList.removeAll(list) Java 中 HashSet 的 removeAll 性能分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设技术服务合同佛山建设

10月26日,教育部召开新闻发布会,介绍综合防控儿童青少年近视工作情况。全国综合防控儿童青少年近视工作联席会议机制办公室主任、教育部体育卫生与艺术教育司司长王登峰介绍,2018年全国儿童青少年的总体近视率53.6%,2019年总体近视…

遵义网站搭建公司哪家好东阳市网站建设

id返回不确定类型的对象(也就是任意类型的对象),- (id)arrayWithData;返回的就是不确定类型的对象,如果执行数组的方法, [- (id)arrayWithData objectOfIndex:0]编译时不会报错,但运行时会报错,…

做地方旅游网站html5个人主页制作代码

代码目录 框架 our_storage 编译最终生成的目标文件obj 编译生成中间的.o文件 data_global.c 公共资源定义(使用在外extern即可)定义了锁定义了条件变量消息队列id、共享内存id、信号量id及key值发送短信、接收短信的号码向消息队列发送消息的函数&am…

网站建设与规划学的心得体会网站策划过程

题目描述 有\(n(n<1000000)\)个小朋友坐成一圈&#xff0c;每人有\(a_i\)个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为\(1\)&#xff0c;求使所有人糖果数相等的最小代价。 暴力的做法比较显然&#xff0c;有\(30\)分&#xff0c;这里就不再赘述了。 推…

汽车o2o网站建设网站幻灯片js代码

在派生类中&#xff0c;成员可以按访问属性分为以下四种&#xff1a; &#xff08;1&#xff09;不可访问成员。这是从基类私有成员继承下来的&#xff0c;派生类或是建立派生类对象的模块都无法访问到它们&#xff0c;如果从派生类继续派生新类&#xff0c;也是无法访问的。 &…

代做网站公司有哪些网站建设中 目录是什么

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

买外贸衣服的网站wordpress 非插件分页

转载自 史上最全MySQL 大表优化方案&#xff08;长文&#xff09; 当MySQL单表记录数过大时&#xff0c;增删改查性能都会急剧下降&#xff0c;可以参考以下步骤来优化&#xff1a; 一、单表优化 除非单表数据未来会一直不断上涨&#xff0c;否则不要一开始就考虑拆分&…

提供网站设计方案公司南昌手机网站制作

从今天开始&#xff0c;我将带你一起学习 MySQL 的性能调优。MySQL 数据库是互联网公司使用最为频繁的数据库之一&#xff0c;不仅仅因为它开源免费&#xff0c;MySQL 卓越的性能、稳定的服务以及活跃的社区都成就了它的核心竞争力。 我们知道&#xff0c;应用服务与数据库的交…

私人做网站图片外国网站翻墙怎么做

一、什么是代码片段当在Xcode中输入dowhile并回车后&#xff0c;Xcode会出现下图所示的提示代码&#xff1a;这就是代码片段&#xff0c;目的是使程序员以最快的速度输入常用的代码片段&#xff0c;提高编程效率。该功能是从Xcode4开始引入的。在Xcode中的位置如下图所示&#…

企业网站 html模板下载网站建设与维护心得体会

用过Java的都知道SSH框架&#xff0c;特别对于数据库开发&#xff0c;Java领域有无数的ORM框架&#xff0c;供数据持久层调用&#xff0c;如Hibernate&#xff0c;iBatis(现在改名叫MyBatis)&#xff0c;TopLink&#xff0c;JDO&#xff0c;JPA……非常方便实用。用过C#的同学们…

设计公司网站域名郑州免费网站建设哪家好

什么是SQLite&#xff1f; SQLite是安卓中的轻量级内置数据库&#xff0c;不需要设置用户名和密码就可以使用。资源占用较少&#xff0c;运算速度也比较快。 SQLite支持&#xff1a;null&#xff08;空&#xff09;、integer&#xff08;整形&#xff09;、real&#xff08;小…

网站课程建设申报书wordpress购买阅读

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; MySQL 学习 &#x1f383;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 &#x1f381;软件版本&#xff1a; MySQL 5.7.44 文章目录 1.创建数据库2.数据库中的编码问题2.1.字符集与校验集2.3.支持的字符…

网站导航栏是什么上海商城

近日&#xff0c;汇智知了堂在四川农业大学举办的为期五天的校内综合项目实训活动已圆满结束。本次实训聚焦Python爬虫技术&#xff0c;旨在提升学生的编程能力和数据分析能力&#xff0c;为学生未来的职业发展打下坚实的基础。 作为一家在IT教育行业享有盛誉的机构&#xff…

做网站 业务流程图超融合系统

Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。 1. 新生代 是用来存放新生的对象。一般占据堆的 1/3 空间。由于频繁创建对象&#xff0c;所以新生代会频繁触发MinorGC 进行垃圾回收。新生代又分为 Eden 区、ServivorFrom、…

家纺网站设计wordpress 外链 图库

一、什么是上市公司股权收购线&#xff1f; 上市公司股权收购线是指在进行上市公司股权收购时&#xff0c;根据相关法律法规和规定&#xff0c;收购方需要遵守的特定比例或条件。这些比例或条件通常用于确定收购方在收购过程中需要采取的行动或满足的要求。 其中&#xff0c;…

重庆推广网站的方法新东方厨师学费价目表

Joystick Pack这种重力带惯性不利于正常开发。决定进行优化。有一种万事俱备只欠东风的感觉。 源代码如下&#xff1a; 1.在脚本中找到轮盘所输出的方向值 2.把方向的改变值加到鸣人模型身上。 2.1控制器脚本中添加model变量 2.2在unity中赋值 2.3代码中修改位置 using Syst…

网站右侧浮动导航世界摄影网站

硬质合金刀片牌号表示方法如下图&#xff1a;yw1硬质合金刀片a320钨钛钴类硬质合金主要成分是碳化钨、碳化钛(TiC)及钴。其牌号由“YT”(“硬、钛”两字汉语拼音字首)和碳化钛平均含量组成。例如&#xff0c;YT15&#xff0c;表示平均碳化钛(TiC)15%&#xff0c;其余为碳化钨和…

制作网站要多久智慧团建pc端注册入口

# 1 赛题 D 题 量子计算在矿山设备配置及运营中的建模应用 随着智能技术的发展&#xff0c;智慧矿山的概念越来越受到重视。越来越多的 设备供应商正在向智慧矿山整体解决方案供应商转型&#xff0c;是否具备提供整体 解决方案的能力&#xff0c;也逐步成为众多矿山设备企业的核…

电商网站建设的意义适合穷人翻身的10个行业

1 范围 本文件描述了碳纤维增强复合材料加速吸湿和过饱和调节的方法&#xff0c;该方法在温度高于100 ℃但低 于试验材料玻璃化转变温度(T) 的饱和水蒸气密封压力容器中进行。 本文件适用于玻璃化转变温度大于150℃的热固性碳纤维增强复合材料。热塑性碳纤维增强复合 材料也…

网站开发和网站制作的区别福建省建设职业管理中心网站

什么是测试驱动开发&#xff1f; 软件开发团队通常会编写自动化测试套件来防止回归。这些测试通常是在编写应用程序功能代码之后编写的。我们将采用另一种方法&#xff1a;在实现应用程序代码之前编写测试。这称为测试驱动开发 (TDD)。 为什么要应用 TDD&#xff1f;通过在实…