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

循环遍历 Java 集合中元素的方法总结

循环遍历 Java 集合中元素的方法

在 Java 中,有多种方法可以遍历集合中的元素。以下是几种常见的遍历方法及其优缺点:

1. for-each 循环
  • 语法

    for (ElementType element : collection) {// 处理 element
    }
    
  • 适用场景:所有集合类型(如 ListSetMap 等)。

  • 优点

    • 语法简洁,易于阅读。
    • 遍历效率高,与迭代器类似。
  • 缺点

    • 无法在遍历过程中修改集合(会抛出 ConcurrentModificationException)。
  • 注意事项

    • 基于迭代器实现,与迭代器共享 fail-fast 机制。
2. Iterator 迭代器
  • 语法

    Iterator<ElementType> iterator = collection.iterator();
    while (iterator.hasNext()) {ElementType element = iterator.next();// 处理 element// 可以安全地在遍历中删除元素// iterator.remove();
    }
    
  • 适用场景:所有集合类型。

  • 优点

    • 可安全地在遍历过程中删除元素(通过 remove() 方法)。
  • 缺点

    • 无法添加元素(除非使用 ListIterator)。
  • 注意事项

    • fail-fast 机制:检测到结构修改时抛出异常。
    • 需手动管理迭代器生命周期。
3. 普通 for 循环
  • 语法

    for (int i = 0; i < list.size(); i++) {ElementType element = list.get(i);// 处理 element
    }
    
  • 适用场景List 或数组。

  • 优点

    • 直接通过索引访问,效率高(尤其适合随机访问)。
  • 缺点

    • 仅适用于有序集合(如 List)。
    • 遍历中修改集合可能导致越界异常。
  • 注意事项

    • 需预先获取集合长度(size()),适合需要索引操作的场景。
4. Java 8+ Stream API
  • 语法

    collection.stream().forEach(element -> {// 处理 element
    });
    
  • 适用场景:所有集合类型。

  • 优点

    • 支持链式操作(filtermapreduce 等)。
    • 可并行处理(parallel())。
  • 缺点

    • 性能开销较大(创建流对象)。
    • 对简单遍历可能不够高效。
  • 注意事项

    • 惰性求值:需终端操作(如 forEach())触发执行。
    • 不支持直接修改集合。
5. ListIterator
  • 语法

    ListIterator<ElementType> listIterator = list.listIterator();
    while (listIterator.hasNext()) {ElementType element = listIterator.next();// 处理 element// 可以安全地在遍历中增删元素// listIterator.remove();// listIterator.add(newElement);
    }
    
  • 适用场景List 类型。

  • 优点

    • 双向遍历(正向/反向)。
    • 支持在遍历中增删元素。
  • 缺点

    • 仅适用于 List
    • 逻辑较复杂。
  • 注意事项

    • 维护游标位置需谨慎,避免越界。
    • 与迭代器类似,有 fail-fast 机制。
6. Lambda 表达式
  • 语法

    collection.forEach(element -> {// 处理 element
    });
    
  • 适用场景:所有集合类型。

  • 优点

    • 代码简洁。
    • 与 Stream API 结合使用更强大。
  • 缺点

    • 对简单遍历可能冗余。
    • 需 Java 8+ 支持。
  • 注意事项

    • 需配合 forEach() 或 Stream API 使用。
    • 无法在遍历中修改集合。

表格总结优缺点

方法适用场景优点缺点注意事项
for-each循环所有集合类型- 语法简洁
- 遍历效率高(与迭代器类似)
- 无法在遍历过程中修改集合(会抛出 ConcurrentModificationException- 基于迭代器实现,与迭代器共享 fail-fast 机制
Iterator迭代器所有集合类型- 可安全地在遍历中删除元素(remove()- 无法添加元素(除非使用 ListIterator- fail-fast 机制:检测到结构修改时抛出异常
- 需手动管理迭代器生命周期
普通for循环List或数组- 直接通过索引访问,效率高(尤其适合随机访问)- 仅适用于有序集合(如 List
- 遍历中修改集合可能导致越界异常
- 需预先获取集合长度(size()),适合需要索引操作的场景
Java 8+ Stream API所有集合类型- 支持链式操作(filter/map/reduce等)
- 可并行处理(parallel()
- 性能开销较大(创建流对象)
- 对简单遍历可能不够高效
- 惰性求值:需终端操作(如 forEach())触发执行
- 不支持直接修改集合
ListIteratorList类型- 双向遍历(正向/反向)
- 支持在遍历中增删元素
- 仅适用于 List
- 逻辑较复杂
- 维护游标位置需谨慎,避免越界
- 与迭代器类似,有 fail-fast 机制
Lambda表达式所有集合类型- 代码简洁
- 与 Stream API 结合使用更强大
- 对简单遍历可能冗余
- 需 Java 8+ 支持
- 需配合 forEach() 或 Stream API 使用
- 无法在遍历中修改集合

选择建议

  1. 简单遍历

    • for-each循环:语法简洁,适合只读操作。
    • 普通for循环:需索引访问时(如 List)优先选择。
  2. 遍历中修改集合

    • Iterator:安全删除元素(通过 remove())。
    • ListIterator:双向遍历或需增删元素时使用。
  3. 复杂操作(过滤/映射/聚合)

    • Stream API:结合 Lambda 表达式,代码更简洁且功能强大。
  4. 多线程环境

    • 使用 CopyOnWriteArrayList 等线程安全集合,避免 ConcurrentModificationException

通过合理选择遍历方法,可以提升代码的可读性和执行效率。

相关文章:

循环遍历 Java 集合中元素的方法总结

循环遍历 Java 集合中元素的方法 在 Java 中&#xff0c;有多种方法可以遍历集合中的元素。以下是几种常见的遍历方法及其优缺点&#xff1a; 1. for-each 循环 语法&#xff1a; for (ElementType element : collection) {// 处理 element }适用场景&#xff1a;所有集合类型…...

树莓派上的 TensorFlow Lite:从零开始的摄像头图像识别

**** 1. 引言 随着人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;的发展&#xff0c;越来越多的开发者希望在嵌入式设备&#xff08;如树莓派&#xff09;上运行 AI 模型&#xff0c;实现目标检测、人脸识别等功能。TensorFlow Lite&#xff08;TF…...

金融时间序列分析(Yahoo Finance API实战)

这里写目录标题 金融时间序列分析(Yahoo Finance API实战)1. 引言2. 项目背景与意义3. 数据集介绍4. GPU加速在数据处理中的应用5. 交互式GUI设计与加速处理6. 系统整体架构7. 数学公式与指标计算8. 完整代码实现9. 代码自查与BUG排查10. 总结与展望金融时间序列分析(Yahoo …...

Python 正则表达式模块 re

Python 正则表达式模块 re flyfish 一、正则表达式基础 1. 什么是正则表达式&#xff1f; 正则表达式&#xff08;Regular Expression, RE&#xff09;是一种用于匹配、查找和替换文本模式的工具&#xff0c;由普通字符&#xff08;如字母、数字&#xff09;和特殊字符&…...

Vue生命周期

一、Vue的生命周期及其阶段 Vue生命周期&#xff1a;一个Vue实例从 创建 到 销毁 的整个过程。也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程&#xff0c;我们称这是 Vue 的生命周期。 生命周期的四个阶段&#xff1a;① 创建 ② 挂…...

vue3数据双向绑定解析

Vue 3 的双向绑定原理主要基于 Proxy 和 Reflect&#xff0c;核心源码在 reactivity 模块中。 1. 核心模块&#xff1a;reactivity reactivity 模块负责响应式数据的实现&#xff0c;主要包括以下几个文件&#xff1a; reactive.ts&#xff1a;处理对象和数组的响应式。ref.t…...

Gemini 2.0 全面解析:技术突破、应用场景与竞争格局

摘要 2025年3月&#xff0c;谷歌正式发布Gemini 2.0大模型&#xff0c;凭借其在多模态处理、代码生成和长上下文理解等领域的突破性进展&#xff0c;迅速成为AI领域的焦点。本文将深入剖析Gemini 2.0的技术架构、应用场景及与Grok3、DeepSeek R1、ChatGPT-4.5等竞品的对比&…...

【Linux系统编程】管道

目录 1、什么是管道2、管道的种类3、数据的读写3.1、管道通信3.2、管道的命令实例&#xff1a; 4、无名管道4.1、pipe() 无名管道的创建示例&#xff1a;简单读写示例&#xff1a;加入进程示例&#xff1a;通过 管道&#xff08;pipe&#xff09; 实现 父子进程之间的双向通信 …...

LeeCode题库第643题

643.子数组最大平均数I 项目场景&#xff1a; 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组&#xff0c;并输出该最大平均数。 任何误差小于 10-5 的答案都将被视为正确答案。 示例 1&#xff1a; 输入&#xff…...

数据炼丹与硬件互动:预测湿度的武学之道

前言 在这茫茫数据江湖中&#xff0c;高手过招&#xff0c;唯有融合机器学习与物联网之精髓&#xff0c;方能于风云变幻间自成一派。本文正是为各位江湖同道献上的秘籍&#xff0c;既有数据炼丹&#xff08;预处理、模型训练&#xff09;之奥义&#xff0c;也有硬件互通&#…...

【SpringBoot】MD5加盐算法的详解

目录 一、什么是加盐算法 二、如何实现加盐算法 2.1 加盐算法代码实现 2.2 注册页面中进行密码加盐 2.3 登录页面进行加盐的解密 2.4 注册和登录 一、什么是加盐算法 加盐算法是一种用于增强密码安全性的技术。这种技术通过在密码存储过程中添加一个随机生成的盐值&…...

IP风险度自检,互联网的安全“指南针”

IP地址就像我们的网络“身份证”&#xff0c;而IP风险度则是衡量这个“身份证”安全性的重要指标。它关乎着我们的隐私保护、账号安全以及网络体验&#xff0c;今天就让我们一起深入了解一下IP风险度。 什么是IP风险度 IP风险度是指一个IP地址可能暴露用户真实身份或被网络平台…...

如何手动使用下载并且运行 QwQ-32B-GGUF

首先使用安装 pip install ModelScope 使用 ModelScope 下载对应的模型 modelScope download --model Qwen/QwQ-32B-GGUF qwq-32b-q4_k_m.gguf 第二步开始下载 ollama git clone https://githubfast.com/ggerganov/llama.cpp # githubfast.com 可以加速下载 切换到目录&am…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-附录-3-从ES 7.x到8.x的平滑迁移策略

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 附录-版本升级指南 3-Elasticsearch 7.x 到 8.x 平滑迁移策略指南1. 升级必要性分析1.1 版本特性对比1.2 兼容性评估矩阵 2. 预升级准备清单2.1 环境检查表2.2 数据备份策略 3. 分阶段…...

IP 地址

文章目录 IP 地址IP 地址的分类IPv4 地址IPv6 地址 公有 IP 与私有 IP静态 IP 与动态 IP子网与子网掩码常见 IP 地址用途IP 地址的工作方式总结 IP 地址 IP&#xff08;Internet Protocol&#xff09;地址是计算机网络中的标识符&#xff0c;用于唯一标识网络中的设备。它可以…...

利用余弦相似度在大量文章中找出抄袭的文章

我前面的2篇文章分别讲了如果利用余弦相似度来判断2篇文章的相似度&#xff0c;来确定文章是否存在抄袭&#xff0c;和余弦相似度的原理&#xff0c;即余弦相似度到底是怎么来判断文章的相似性高低的等等。这一篇再说下&#xff0c;对于文章字数多和大量文章时&#xff0c;如果…...

《C语言中“输入魔法师”:scanf函数的奥秘与技巧》

&#x1f680;个人主页&#xff1a;fasdfdaslsfadasdadf &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、引言二、scanf函数的基本语法三、格式说明符的种类及用法&#xff08;一&#xff09;整数输入&#xff08;二&#xff09;浮点数输入&#xff08;三&…...

VSTO(C#)Excel开发6:与窗体交互

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

PCL 点云OBB包围盒(二)

文章目录 一、简介二、实现步骤二、实现代码三、实现效果参考资料一、简介 包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。(来源于百度)常用的求解包围盒的算法主要有AABB和OOB算法,但AAB…...

IDEA 一键完成:打包 + 推送 + 部署docker镜像

1、本方案要解决场景&#xff1f; 想直接通过本地 IDEA 将最新的代码部署到远程服务器上。 2、本方案适用于什么样的项目&#xff1f; 项目是一个 Spring Boot 的 Java 项目。项目用 maven 进行管理。项目的运行基于 docker 容器&#xff08;即项目将被打成 docker image&am…...

农业建设项目管理系统评测:8款推荐工具优缺点分析

本文主要介绍了以下8款农业建设项目管理系统&#xff1a;1.PingCode&#xff1b; 2. Worktile &#xff1b;3. 建米农业工程项目管理系统&#xff1b;4. 开创云数字农业管理平台&#xff1b; 5. Trimble Ag Software&#xff1b;6.Conservis&#xff1b; 7. Agworld &#xff1…...

【MySQL】表的约束(上)

文章目录 表的约束什么是表的约束空属性默认值列描述&#xff08;comment&#xff09;零填充&#xff08;zerofill&#xff09;主键 总结 表的约束 什么是表的约束 表的约束&#xff08;Constraints&#xff09;是数据库表中的规则&#xff0c;用于限制存储的数据&#xff0c…...

根据TCP中的拥塞控制细说网卡了数据怎么传输

TCP&#xff08;传输控制协议&#xff09;中的拥塞控制是确保网络在数据传输过程中不会发生过载并导致网络崩溃的机制。拥塞控制通过动态地调整发送方的数据传输速率来适应网络的负载&#xff0c;从而避免网络拥塞。TCP的拥塞控制主要是根据网络的状况自动调整其发送速率&#…...

【SpringMVC】入门版

1.基本概念 1.1三层架构 三层架构也就是我们常说的b/s架构中的表现层&#xff0c;业务层和持久层,每层都各司其职&#xff0c;下面来分别讲解这三层的作用。 表现层&#xff1a; 也就是我们常说的web层。它负责接收客户端的请求&#xff0c;向客户端响应结果&#xff0c;通…...

DAY33 贪心算法Ⅱ

122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 想到把整体利润分解为每天的利润&#xff0c;就豁然开朗了。 class Solution { public:int maxProfit(vector<int>& prices) {int result0;for(int i1;i<prices.size();i){resultmax(0,pric…...

re-二维四向迷宫题

关于迷宫 我们结合具体的来进行描述。 迷宫&#xff0c;顾名思义是有墙&#xff0c;且只有一条路可以走下去。当我们在题目中获得了map&#xff08;地图&#xff09;就拥有了上帝视角&#xff0c;就可以顺利的走出迷宫。 在下面这个图就是一个迷宫的map&#xff0c;其中A是起…...

并发编程面试题一

1、什么是进程、线程、协程&#xff0c;他们之间的关系是怎样的 进程是操作系统进行资源分配和调度的基本单位。每个进程都有独立的内存空间&#xff0c;进程之间相互独立&#xff0c;一个进程崩溃不会影响其他进程&#xff0c;进程间通信&#xff08;IPC&#xff09;需要通过…...

3.14周报

本周主要是在找双目视觉三维人体姿态估计方向的文章&#xff0c;这篇dual-diffusion&#xff0c;双目三维人体姿态估计的双扩散文章&#xff0c;引起了兴趣&#xff0c;作者从由于摄像机数量的减少&#xff0c;增加了3d重建的不确定性入手&#xff0c;然后使用了扩散模型&#…...

【redis】zset 类型:基本命令(上)

set 集合&#xff1a; 唯一无序。&#xff08;顺序不重要&#xff09;孙行者、行者孙>同一只猴 list 有序。&#xff08;顺序很重要&#xff09;孙行者、行者孙>不同的猴 zset 有序。升序/降序 有序集合 排序的规则是什么&#xff1f; 给 zset 中的 member 引入了…...

3分钟复现 Manus 超强开源项目 OpenManus

文章目录 前言什么是 OpenManus构建方式环境准备克隆代码仓库安装依赖配置 LLM API运行 OpenManus 效果演示总结个人简介 前言 近期人工智能领域迎来了一位备受瞩目的新星——Manus。Manus 能够独立执行复杂的现实任务&#xff0c;无需人工干预。由于限制原因大部分人无法体验…...

【Java篇】一法不变,万象归一:方法封装与递归的思想之道

文章目录 Java 方法的使用&#xff1a;从基础到递归的全面解析一、方法的概念及使用1.1 什么是方法 (method)?1.2 方法定义1.3 方法调用的执行过程1.4 实参和形参的关系1.5 没有返回值的方法 二、方法重载2.1 为什么需要方法重载2.2 方法重载的概念2.2.4 C 和 Java 的比较&…...

SpringBoot解决跨域

将这个类添加到项目中 ResponseAdvice.java package com.example.homeLearn.config;import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; import org.springframework.http.server.ServerHttpRequest; import org.springframework…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-附录-2-性能调优工具箱

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 附录-性能调优工具箱 2-Elasticsearch 性能调优工具箱深度指南一、性能诊断工具集1.1 实时监控工具1.2 慢查询分析 二、硬件与基础架构优化2.1 存储方案选型2.2 JVM调优参数 三、索引…...

UDP协议栈之整体架构处理

在之前的章节中&#xff0c;笔者就UDP、ICMP、IP、ARP、MAC层的报文格式&#xff0c;以及组帧解帧、CRC校验、分片处理等操作进行了具体介绍以及详细代码实现&#xff0c;并且通过了仿真测试。但之前的仿真测试都是对单层报文的组帧解帧进行的&#xff0c;这些模块仍处于“孤立…...

健康医疗:动态代理 IP 保障医疗数据安全,提升远程医疗服务质量!

在数字化浪潮的推动下&#xff0c;远程医疗服务以其便捷性和高效性受到了广泛的关注。然而&#xff0c;随之而来的是数据安全问题&#xff0c;尤其是医疗数据的安全性&#xff0c;成为了制约远程医疗服务发展的关键因素。幸运的是&#xff0c;动态代理IP技术的出现&#xff0c;…...

Navicat SqlServer 设置自增主键

Navicat是一款优秀的数据库管理工具&#xff0c;可以连接很多类型的数据库。使用它可以极大的提高工作效率。 Navicat 不能设置SqlServer自增字段&#xff0c;只能通过sql语句来实现 建表时设置 create table <表名> ( <字段1-主键> int identity (1,1) primar…...

实验8 搜索技术

实验8 搜索技术 一、实验目的 &#xff08;1&#xff09;掌握搜索技术的相关理论&#xff0c;能根据实际情况选取合适的搜索方法&#xff1b; &#xff08;2&#xff09;进一步熟悉盲目搜索技术&#xff0c;掌握其在搜索过程中的优缺点&#xff1b; &#xff08;3&#xff09;…...

IMA+DeepSeekR1+本地知识库撰写NOIP2008普及组T3【传球游戏】题解

目录 一、提问词 二、DeepSeekR1回复 题目描述 解题思路 实现代码 代码说明 三、说明 【IMADeepSeekR1本地知识库】撰写NOIP2008普及组复赛题解系列 1、IMADeepSeekR1本地知识库撰写NOIP2008普及组T1【ISBN 号码】题解-CSDN博客 2、IMADeepSeekR1本地知识库撰写NOIP200…...

查找特定的值(信息学奥赛一本通-1110)

【题目描述】 在一个序列(下标从1开始)中查找一个给定的值&#xff0c;输出第一次出现的位置。 【输入】 第一行包含一个正整数n&#xff0c;表示序列中元素个数。1 <n< 10000。 第二行包含n个整数&#xff0c;依次给出序列的每个元素&#xff0c;相邻两个整数之间用单个…...

Qt项目中集成第三方模块的.pri文件

对于功能模块较多的Qt项目&#xff0c;使用pri文件管理模块文件&#xff0c;降低工程复杂度&#xff0c;提高软件模块的封装性和重用性。 一、.pro与.pri 对于模块化编程&#xff0c;Qt提供了pro和pri&#xff0c;pro管理项目&#xff0c;pri管理模块。 .pro 文件是Qt项目的…...

200多种算法应用于二维和三维无线传感器网络(WSN)覆盖场景

2.1 二元感知模型 在当前无线传感器网络&#xff08;WSN&#xff09;覆盖场景中&#xff0c;最常见且理想的感知模型是二元感知模型[27]。如图2所示&#xff0c; Q 1 Q_1 Q1​和 Q 2 Q_2 Q2​代表平面区域内的两个随机点。 Q 1 Q_1 Q1​位于传感器的检测区域内&#xff0c;其感…...

【QT】文件系统相关 -- QFile

一、Qt 文件概述 &#x1f525; 文件操作是应用程序必不可少的部分。Qt 作为⼀个通用开发库&#xff0c;提供了跨平台的文件操作能力。Qt 提供了很多关于⽂件的类&#xff0c;通过这些类能够对文件系统进行操作&#xff0c;如文件读写、文件信息获取、文件制或重命名等 二、输…...

transformer bert 多头自注意力

输入的&#xff08;a1,a2,a3,a4&#xff09;是最终嵌入&#xff0c;是一个(512,768)的矩阵&#xff1b;而a1是一个token&#xff0c;尺寸是768 a1通过Wq权重矩阵&#xff0c;经过全连接变换得到查询向量q1&#xff1b;a2通过Wk权重矩阵得到键向量k2&#xff1b;q和k点乘就是值…...

人工智能之数学基础:线性变换的象空间和零空间

本文重点 前面的课程中,我们学习了线性变换,由此而引申出线性变换的象空间和零空间,这两个空间在机器学习领域会被经常用到,本文对此进行学习。 直观理解 总的来说象空间就是经过线性变换得到的空间,零空间就是经过线性变换是零的元素构成的空间。 从几何角度来看,象空…...

数据的存储---整型、浮点型

目录 一、整型在内存中的存储 1. 原码、反码、补码 2. 大端与小端 二、浮点数在内存中的存储 1.浮点数的存 2. 浮点数的取 3. 题目解析 一个变量的创建需要在内存中开辟空间&#xff0c;而开辟的空间大小是由数据类型决定的。下面我们就来讨论一下整型、浮点型在内存中的…...

鲸鱼算法WOA对风电场风电机组一次二次调频参数进行全局最优辨识,二次调频参数辩识matlab/simulink,也可进一步修改成一次调频参数辩识

模型为二次调频模型&#xff0c;也可修改为一次调频模型参数辩识 随着风电在电力系统中占比提高,其调频特性对电力系统频率稳定性的影响增大&#xff0c;例如&#xff0c;随着风电渗透水平不断提升&#xff0c;系统惯量不断增加&#xff0c;电力系统频率不断下降&#xff0c;在…...

Spring 中 SmartInitializingSingleton 的作用和示例

一、 接口定义 SmartInitializingSingleton 是 Spring 框架提供的一个 单例 Bean 全局初始化回调接口&#xff0c;用于在 所有非延迟单例 Bean 初始化完成后 执行自定义逻辑。 核心方法&#xff1a; public interface SmartInitializingSingleton {void afterSingletonsInsta…...

《TCP/IP网络编程》学习笔记 | Chapter 18:多线程服务器端的实现

《TCP/IP网络编程》学习笔记 | Chapter 18&#xff1a;多线程服务器端的实现 《TCP/IP网络编程》学习笔记 | Chapter 18&#xff1a;多线程服务器端的实现线程的概念引入线程的背景线程与进程的区别 线程创建与运行pthread_createpthread_join可在临界区内调用的函数工作&#…...

Unity AI 技术浅析(三):智能代理(Agents)

Unity AI的智能代理(Agents)技术是实现游戏和虚拟现实应用中非玩家角色(NPC)、敌人、盟友等智能行为的核心。通过智能代理,开发者可以为虚拟角色赋予感知、决策和行动的能力,使其能够与环境和其他角色进行复杂的交互。 一、智能代理的基本原理 智能代理是能够在特定环境…...

加油站~~

求最少加油次数就是一个贪心问题&#xff0c;这里也不需要证明&#xff0c;根据我们的常识也知道就是走到油不够的时候就加油就好了&#xff0c;这里的no solution这有在两个加油站之间的距离大于了加满油后的行驶距离才会存在&#xff0c;其他情况都是可以计算的。代码有很多细…...