营销型网站建设公司排名全球做的最好的公司网站

张小明 2026/1/12 15:58:02
营销型网站建设公司排名,全球做的最好的公司网站,企业建设网站意义,涟源seo快速排名目录一、集合框架层次结构二、Collection集合1、Queue队列1. LinkedList 作为队列2. ArrayDeque 作为队列3. PriorityQueue 优先队列4.LinkedBlockingQueue - 最常用的阻塞队列5. ConcurrentLinkedQueue - 高并发非阻塞队列2、队列操作模式对比1.插入操作对比2.移除操作对比3.查…目录一、集合框架层次结构二、Collection集合1、Queue队列1. LinkedList 作为队列2. ArrayDeque 作为队列3. PriorityQueue 优先队列4.LinkedBlockingQueue - 最常用的阻塞队列5. ConcurrentLinkedQueue - 高并发非阻塞队列2、队列操作模式对比1.插入操作对比2.移除操作对比3.查看操作对比3、队列选择Java 集合框架Collections Framework是 Java 中用于存储和操作数据组的重要架构。它提供了一组接口、实现类和算法。一、集合框架层次结构Collection (接口) ├── List (接口 - 有序可重复) │ ├── ArrayList (实现类) │ ├── LinkedList (实现类) │ ├── Vector (线程安全已过时) │ └── Stack (继承Vector) │ ├── Set (接口 - 无序不可重复) │ ├── HashSet (实现类) │ │ └── LinkedHashSet (保持插入顺序) │ ├── SortedSet (接口) │ │ └── TreeSet (实现类) │ └── EnumSet (专用于枚举) │ └── Queue (接口 - 队列) ├── Deque (双端队列接口) │ ├── ArrayDeque (实现类) │ └── LinkedList (也实现了Deque) │ ├── PriorityQueue (优先队列) └── BlockingQueue (阻塞队列接口) ├── ArrayBlockingQueue ├── LinkedBlockingQueue └── PriorityBlockingQueue Map (接口 - 键值对) ├── HashMap (实现类) │ └── LinkedHashMap (保持插入顺序) ├── TreeMap (基于红黑树) ├── Hashtable (线程安全已过时) ├── WeakHashMap (弱引用) └── ConcurrentHashMap (并发版)Java集合大致可以分为两大体系一个是Collection另一个是MapCollection主要由List、Set、Queue接口组成List代表有序、重复的集合其中Set代表无序、不可重复的集合Queue体系集合代表一种队列集合实现。Map则代表具有映射关系的键值对集合。java.util.Collection下的接口和继承类关系简易结构图java.util.Map下的接口和继承类关系简易结构图其中Java 集合框架中主要封装的是典型的数据结构和算法如动态数组、双向链表、队列、栈、Set、Map等。二、Collection集合通过集合的关系图我们可以知道Collection是集合的顶层父类他定义了集合的基本方法如基本操作方法方法签名功能描述返回值示例时间复杂度int size()返回集合中元素的数量元素个数list.size()→3O(1)boolean isEmpty()判断集合是否为空true/falselist.isEmpty()→falseO(1)boolean contains(Object o)判断是否包含指定元素true/falselist.contains(A)→trueList: O(n)Set: O(1)TreeSet: O(log n)boolean add(E e)添加元素到集合是否成功list.add(D)→trueArrayList: 均摊O(1)LinkedList: O(1)TreeSet: O(log n)boolean remove(Object o)移除指定元素是否成功list.remove(A)→trueArrayList: O(n)LinkedList: O(n)HashSet: O(1)批量操作方法方法签名功能描述返回值示例说明boolean containsAll(Collection? c)是否包含集合c中所有元素true/falselist.containsAll(subList)检查子集关系boolean addAll(Collection? extends E c)添加集合c中所有元素是否改变list.addAll(anotherList)批量添加boolean removeAll(Collection? c)移除集合c中所有元素是否改变list.removeAll(toRemove)差集操作boolean retainAll(Collection? c)仅保留集合c中元素是否改变list.retainAll(common)交集操作void clear()清空集合所有元素无list.clear()集合变为空转换和迭代方法方法签名功能描述返回值示例说明Object[] toArray()转换为Object数组Object数组list.toArray()返回新数组T T[] toArray(T[] a)转换为指定类型数组指定类型数组list.toArray(new String[0])类型安全转换IteratorE iterator()返回迭代器Iterator对象list.iterator()用于遍历集合default boolean removeIf(Predicate? super E filter)条件删除是否改变list.removeIf(s - s.length() 3)Java 8default SpliteratorE spliterator()返回分割迭代器Spliterator对象list.spliterator()Java 8并行遍历default StreamE stream()返回顺序流Stream对象list.stream()Java 8流操作default StreamE parallelStream()返回并行流Stream对象list.parallelStream()Java 8并行流操作集合运算方法方法数学运算示意图示例addAll()并集A ∪ BA.addAll(B)retainAll()交集A ∩ BA.retainAll(B)removeAll()差集A - BA.removeAll(B)常见操作示例操作需求代码示例说明遍历集合for (E e : collection) { ... }增强for循环安全遍历并删除iterator.remove()使用迭代器删除转换为数组String[] arr coll.toArray(new String[0])推荐写法批量添加元素coll.addAll(Arrays.asList(A,B,C))初始化集合过滤集合coll.removeIf(e - e.startsWith(A))Java 8集合判空if (!coll.isEmpty()) { ... }优于size() 0注意事项表格方法注意事项推荐做法contains()依赖equals()和hashCode()正确实现这两个方法remove(Object)只删除第一个匹配项使用removeIf()删除所有toArray()无参方法返回Object[]使用带参方法指定类型addAll()可能修改原集合注意并发修改异常clear()不释放元素引用大集合考虑设为nulliterator()遍历时不能修改集合使用迭代器的remove()场景建议理由频繁包含检查使用HashSetO(1)时间复杂度频繁插入删除使用LinkedList首尾操作O(1)随机访问使用ArrayListO(1)索引访问需要排序使用TreeSet自动维护顺序线程安全使用并发集合ConcurrentHashMap等只读操作使用不可变集合Collections.unmodifiableXXX()Collection集合中所包含的方法publicinterfaceCollectionEextendsIterableE{// 基本操作方法intsize();booleanisEmpty();booleancontains(Objecto);booleanadd(Ee);booleanremove(Objecto);// 批量操作booleancontainsAll(Collection?c);booleanaddAll(Collection?extendsEc);booleanremoveAll(Collection?c);booleanretainAll(Collection?c);voidclear();// 数组转换Object[]toArray();TT[]toArray(T[]a);// 迭代器IteratorEiterator();// Java 8 新增方法defaultbooleanremoveIf(Predicate?superEfilter){...}defaultSpliteratorEspliterator(){...}defaultStreamEstream(){...}defaultStreamEparallelStream(){...}}1、Queue队列核心概念Queue是 Java 集合框架中表示先进先出FIFO队列的接口支持在队尾插入元素在队头移除元素。Queue 接口结构publicinterfaceQueueEextendsCollectionE{// 插入元素booleanadd(Ee);// 添加失败抛异常booleanoffer(Ee);// 添加失败返回false// 移除元素Eremove();// 移除失败抛异常Epoll();// 移除失败返回null// 查看元素不移除Eelement();// 查看失败抛异常Epeek();// 查看失败返回null}Queue 实现类对比实现类底层结构线程安全特性使用场景LinkedList双向链表❌ 否也可作List、Deque一般队列ArrayDeque循环数组❌ 否高性能双端队列推荐的单端队列PriorityQueue二叉堆❌ 否优先级队列任务调度ArrayBlockingQueue数组✅ 是有界阻塞队列生产者-消费者LinkedBlockingQueue链表✅ 是可选有界阻塞队列高并发队列ConcurrentLinkedQueue链表✅ 是无锁队列高并发非阻塞PriorityBlockingQueue二叉堆✅ 是阻塞优先队列优先级任务调度DelayQueuePriorityQueue✅ 是延迟队列定时任务SynchronousQueue无存储✅ 是直接传递队列线程间直接传递1. LinkedList 作为队列基本使用// LinkedList 实现了 Queue 接口QueueStringqueuenewLinkedList();// 入队queue.offer(A);// 推荐使用 offer()queue.add(B);// 也可以使用 add()queue.offer(C);System.out.println(queue);// [A, B, C]// 查看队头Stringheadqueue.peek();// A不移除System.out.println(队头: head);// ASystem.out.println(queue);// [A, B, C]不变// 出队Stringremoved1queue.poll();// AStringremoved2queue.remove();// B队列空时抛异常System.out.println(出队后: queue);// [C]// 判断队列状态booleanisEmptyqueue.isEmpty();// falseintsizequeue.size();// 1特点基于双向链表实现可作队列、双端队列、列表使用插入删除 O(1)查找 O(n)非线程安全使用场景普通队列需求消息队列、任务队列、等待队列需要同时用到队列和列表功能单线程环境或手动同步的多线程环境2. ArrayDeque 作为队列基本使用// ArrayDeque 性能优于 LinkedListQueueIntegerqueuenewArrayDeque(10);// 指定初始容量// 入队for(inti1;i5;i){queue.offer(i);}// 遍历队列不影响队列System.out.print(队列元素: );for(Integernum:queue){System.out.print(num );// 1 2 3 4 5}System.out.println();// 批量出队while(!queue.isEmpty()){Integernumqueue.poll();System.out.println(处理: num);}特点基于循环数组实现性能比 LinkedList 好内存连续初始容量为 16自动扩容为 2 倍推荐的单端队列实现使用场景高性能要求游戏服务器、高频交易系统已知容量上限可以预分配合适大小替代Stack使用ArrayDeque作为栈push(), pop()3. PriorityQueue 优先队列基本使用// 默认最小堆小顶堆QueueIntegerpqnewPriorityQueue();// 添加元素pq.offer(5);pq.offer(1);pq.offer(3);pq.offer(8);pq.offer(2);// 按优先级出队从小到大while(!pq.isEmpty()){System.out.print(pq.poll() );// 1 2 3 5 8}System.out.println();// 最大堆大顶堆QueueIntegermaxHeapnewPriorityQueue(Comparator.reverseOrder());maxHeap.offer(5);maxHeap.offer(1);maxHeap.offer(3);while(!maxHeap.isEmpty()){System.out.print(maxHeap.poll() );// 5 3 1}自定义排序// 自定义对象优先队列classTaskimplementsComparableTask{Stringname;intpriority;// 数字越小优先级越高publicTask(Stringname,intpriority){this.namename;this.prioritypriority;}OverridepublicintcompareTo(Taskother){returnInteger.compare(this.priority,other.priority);}OverridepublicStringtoString(){returnname(priority);}}QueueTasktaskQueuenewPriorityQueue();taskQueue.offer(newTask(邮件,3));taskQueue.offer(newTask(电话,1));taskQueue.offer(newTask(会议,2));while(!taskQueue.isEmpty()){System.out.println(taskQueue.poll());// 电话(1) - 会议(2) - 邮件(3)}使用场景任务调度操作系统进程调度医院急诊按病情严重程度VIP服务按会员等级股票交易按价格优先级4.LinkedBlockingQueue - 最常用的阻塞队列// 无界或有界阻塞队列BlockingQueueIntegerqueuenewLinkedBlockingQueue();// 无界BlockingQueueIntegerboundedQueuenewLinkedBlockingQueue(100);// 有界// 生产者-消费者模式classProducerConsumer{privatefinalBlockingQueueIntegerqueuenewLinkedBlockingQueue(10);// 生产者classProducerimplementsRunnable{publicvoidrun(){try{for(inti0;i20;i){queue.put(i);System.out.println(生产: i);Thread.sleep(100);}}catch(InterruptedExceptione){Thread.currentThread().interrupt();}}}// 消费者classConsumerimplementsRunnable{publicvoidrun(){try{while(true){Integeritemqueue.take();System.out.println(消费: item);Thread.sleep(150);}}catch(InterruptedExceptione){Thread.currentThread().interrupt();}}}}使用场景线程池任务队列ThreadPoolExecutor默认使用消息中间件Kafka、RocketMQ的生产者-消费者日志处理多个应用写日志一个线程消费日志数据缓冲生产速度 消费速度时的缓冲5. ConcurrentLinkedQueue - 高并发非阻塞队列// 非阻塞并发队列ConcurrentLinkedQueueStringconcurrentQueuenewConcurrentLinkedQueue();// 多线程并发操作ListThreadthreadsnewArrayList();// 生产者线程for(inti0;i5;i){ThreadproducernewThread(()-{for(intj0;j10;j){concurrentQueue.offer(Thread.currentThread().getName()-j);}});threads.add(producer);}// 消费者线程for(inti0;i3;i){ThreadconsumernewThread(()-{while(!concurrentQueue.isEmpty()){StringitemconcurrentQueue.poll();if(item!null){System.out.println(Thread.currentThread().getName() 消费: item);}}});threads.add(consumer);}// 启动所有线程threads.forEach(Thread::start);threads.forEach(t-{try{t.join();}catch(InterruptedExceptione){}});System.out.println(最终队列大小: concurrentQueue.size());使用场景实时日志收集多个服务同时写日志股票行情推送高频行情数据在线游戏玩家动作队列点击流分析用户行为跟踪2、队列操作模式对比1.插入操作对比QueueStringqueuenewLinkedList();// 插入方法对比queue.add(A);// 成功返回true失败抛IllegalStateExceptionqueue.offer(B);// 成功返回true失败返回false// 使用建议// 1. 有界队列或不确定时用 offer()// 2. 确定不会失败时用 add()2.移除操作对比QueueStringqueuenewLinkedList();queue.offer(A);// 移除方法对比Stringelem1queue.remove();// 返回A队列空时抛NoSuchElementExceptionStringelem2queue.poll();// 队列空时返回null// 使用建议// 1. 需要处理空队列时用 poll()// 2. 确定队列不空时用 remove()3.查看操作对比QueueStringqueuenewLinkedList();queue.offer(A);// 查看方法对比Stringhead1queue.element();// 返回A队列空时抛NoSuchElementExceptionStringhead2queue.peek();// 队列空时返回null// 使用建议// 1. 需要处理空队列时用 peek()// 2. 确定队列不空时用 element()3、队列选择队列一句话总结使用建议LinkedList“什么都能干但什么都不精”需要同时用到队列和列表功能时ArrayDeque“单线程下的性能冠军”替代 LinkedList性能要求高时PriorityQueue“VIP优先通道”需要按优先级处理时LinkedBlockingQueue“生产者和消费者的桥梁”多线程协作生产者-消费者模式ConcurrentLinkedQueue“高并发下的无锁战士”超高并发读多写多场景
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

南宁电子商务网站建设南京广告设计制作公司

当你的同事还在讨论如何写 Prompt 时,DeepSeek R1、Gemini 3 等新一代推理模型,已经重新定义了人机交互的边界。当你的团队还在为 RAG 的准确率头疼时,LangGraph 的智能体编排和企业级 LLMOps,已成为大厂生产环境的标准配置。打开…

张小明 2026/1/9 9:37:39 网站建设

中国十大旅游网站淘宝店网站论坛怎么做

在数字化转型的浪潮中,企业面临着前所未有的复杂性挑战。单一AI模型难以应对跨部门、跨系统的协同决策需求,而多智能体系统正成为解决这一难题的关键技术。本文通过重构认知视角,深入探讨多智能体系统如何从业务痛点出发,构建智能…

张小明 2026/1/9 9:37:43 网站建设

许昌正规网站优化公司如果网站没有做icp备案吗

大数据质量报警系统:基于机器学习的智能检测实践指南 一、引言:从一场“数据事故”说起——为什么我们需要智能数据质量检测? 去年双11零点刚过,某头部电商的推荐系统突然宕机了。 用户打开App,首页的“猜你喜欢”栏…

张小明 2026/1/10 23:27:22 网站建设

关于协会网站建设的意见网站可以做视频链接

MetaMCP:革命性的多服务器MCP统一管理平台 【免费下载链接】metatool-app 项目地址: https://gitcode.com/gh_mirrors/me/metatool-app 在AI开发日益复杂的今天,管理多个MCP服务器已成为开发者的痛点。MetaMCP应运而生,这款开源的全栈…

张小明 2026/1/9 9:37:41 网站建设

海门市建设局网站全国企业老板电话名录

Freenet与Red Rover:分布式网络技术解析 Freenet的密钥类型与特性 Freenet定义了一种通用的统一资源指示符(URI),格式为 freenet:keytype@data ,其中二进制数据使用略有改动的Base64方案进行编码。不同的密钥类型对URI的数据部分有不同的解读。 内容哈希密钥(CHKs) …

张小明 2026/1/9 9:37:44 网站建设

临武县网站建设网站建设功能选择表

开源语音合成哪家强?EmotiVoice实测表现亮眼 在智能音箱、有声书平台、虚拟主播乃至游戏NPC对话日益普及的今天,用户早已不再满足于“能说话”的机器。他们想要的是会表达、有情绪、像真人一样自然交流的声音助手。传统的文本转语音(TTS&…

张小明 2026/1/12 5:15:07 网站建设