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

【Java Stream详解】

文章目录

  • 前言
  • 一、Stream概述
    • 1.1 什么是 Stream?
    • 1.2 Stream 和集合的区别
  • 二、Stream的创建方式
    • 2.1 基于集合创建
    • 2.2 基于数组创建
    • 2.3 使用 `Stream.generate()`
    • 2.4 使用 `Stream.iterate()`
  • 三、Stream常见操作
    • 3.1 中间操作(Intermediate)
      • ① filter:过滤元素
      • ② map:映射操作
      • ③ flatMap:扁平化处理
      • ④ sorted:排序
    • 3.2 终端操作(Terminal)
      • ① collect:将流转换为集合
      • ② reduce:合并元素
  • 四、并行流处理
  • 五、使用 Stream 处理用户数据
  • 六、总结


前言

Java Stream 是 Java 8 引入的一项强大特性,主要用于处理集合数据。它提供了类似于函数式编程的方式,使代码更加简洁、易读,同时提高了效率。本文将详细介绍 Stream 的基本概念、常用操作、使用场景。


一、Stream概述

1.1 什么是 Stream?

Stream 是 Java 8 中引入的一个新接口,它专注于对集合对象进行处理,支持类似 SQL 的操作,例如:过滤、映射、排序、统计、收集等。Stream 提供了链式操作方式,使代码简洁且易读。

1.2 Stream 和集合的区别

特性Stream集合
数据存储方式不存储数据,仅处理数据流存储数据
是否可复用只能使用一次可重复使用
是否支持惰性求值惰性求值,仅在终端操作时才会执行不支持惰性求值
并行处理支持多核并行处理不支持直接并行处理

二、Stream的创建方式

2.1 基于集合创建

import java.util.stream.Stream;
import java.util.List;public class StreamDemo {public static void main(String[] args) {List<String> list = List.of("Java", "Python", "C++", "Go");// 将集合转换为 StreamStream<String> stream = list.stream();stream.forEach(System.out::println);}
}

2.2 基于数组创建

import java.util.stream.Stream;public class StreamFromArray {public static void main(String[] args) {String[] languages = {"Java", "Python", "C++"};Stream<String> stream = Stream.of(languages);stream.forEach(System.out::println);}
}

2.3 使用 Stream.generate()

import java.util.stream.Stream;public class StreamGenerate {public static void main(String[] args) {// 无限流,生成随机数,限制输出5个Stream<Double> randomStream = Stream.generate(Math::random).limit(5);randomStream.forEach(System.out::println);}
}

2.4 使用 Stream.iterate()

import java.util.stream.Stream;public class StreamIterate {public static void main(String[] args) {// 从1开始,每次加2,生成偶数流Stream<Integer> stream = Stream.iterate(1, n -> n + 2).limit(5);stream.forEach(System.out::println);}
}

三、Stream常见操作

3.1 中间操作(Intermediate)

中间操作返回新的流对象,不会触发终端操作。常见的中间操作包括:

  • filter(Predicate):过滤元素
  • map(Function):映射操作
  • flatMap(Function):扁平化操作
  • sorted(Comparator):排序
  • distinct():去重
  • limit(n):限制流中元素个数
  • skip(n):跳过前 n 个元素

① filter:过滤元素

import java.util.stream.Stream;public class FilterDemo {public static void main(String[] args) {Stream.of("Java", "Python", "Go", "C++").filter(lang -> lang.length() > 3).forEach(System.out::println);}
}

② map:映射操作

将元素转换为新的形式:

import java.util.stream.Stream;public class MapDemo {public static void main(String[] args) {Stream.of("java", "python", "c++").map(String::toUpperCase).forEach(System.out::println);}
}

③ flatMap:扁平化处理

将流中的元素展开成单个元素流:

import java.util.stream.Stream;public class FlatMapDemo {public static void main(String[] args) {Stream.of("Java,Python", "Go,C++").flatMap(lang -> Stream.of(lang.split(","))).forEach(System.out::println);}
}

④ sorted:排序

对流进行排序:

import java.util.stream.Stream;public class SortedDemo {public static void main(String[] args) {Stream.of(5, 3, 8, 1, 2).sorted().forEach(System.out::println);}
}

3.2 终端操作(Terminal)

终端操作会触发流的执行,并返回结果。常见的终端操作包括:

  • forEach(Consumer):遍历
  • collect(Collectors):收集
  • count():计数
  • reduce(BinaryOperator):合并
  • min(Comparator)max(Comparator):最小值和最大值
  • anyMatchallMatchnoneMatch:匹配操作

① collect:将流转换为集合

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class CollectDemo {public static void main(String[] args) {List<String> list = Stream.of("Java", "Python", "Go").collect(Collectors.toList());System.out.println(list);}
}

② reduce:合并元素

import java.util.stream.Stream;public class ReduceDemo {public static void main(String[] args) {int sum = Stream.of(1, 2, 3, 4).reduce(0, Integer::sum);System.out.println("Sum: " + sum);}
}

四、并行流处理

Java Stream 支持多线程并行处理,通过 parallelStream() 可以实现自动并行计算。

import java.util.List;public class ParallelStreamDemo {public static void main(String[] args) {List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);// 并行流处理numbers.parallelStream().map(num -> num * 2).forEach(System.out::println);}
}

五、使用 Stream 处理用户数据

import java.util.List;
import java.util.stream.Collectors;class User {String name;int age;public User(String name, int age) {this.name = name;this.age = age;}
}public class StreamCase {public static void main(String[] args) {List<User> users = List.of(new User("Alice", 23),new User("Bob", 30),new User("Charlie", 27),new User("David", 35));// 筛选年龄大于25岁的用户,并按年龄排序List<String> names = users.stream().filter(u -> u.age > 25).sorted((u1, u2) -> Integer.compare(u1.age, u2.age)).map(u -> u.name).collect(Collectors.toList());System.out.println("筛选结果: " + names);}
}

六、总结

  1. Stream 提供了简洁、易读的集合操作方式,常用于数据过滤、映射、聚合等操作。
  2. 中间操作返回新的流对象,不执行终端操作不会触发计算。
  3. 终端操作触发流的计算并返回结果。
  4. 并行流可轻松实现多线程并行处理。

✅ 使用 Stream 可以提高代码的可读性和开发效率,尤其在集合数据处理时非常实用!

相关文章:

【Java Stream详解】

文章目录 前言一、Stream概述1.1 什么是 Stream&#xff1f;1.2 Stream 和集合的区别 二、Stream的创建方式2.1 基于集合创建2.2 基于数组创建2.3 使用 Stream.generate()2.4 使用 Stream.iterate() 三、Stream常见操作3.1 中间操作&#xff08;Intermediate&#xff09;① fil…...

16进制在蓝牙传输中的应用

在蓝牙传输中&#xff0c;16进制&#xff08;Hexadecimal&#xff09;是一种常用的数据表示方法。它主要用于描述数据包的内容、地址、命令、参数等信息。以下是16进制在蓝牙传输中的具体应用场景和作用&#xff1a; 1. 数据包的表示 蓝牙通信中&#xff0c;所有数据最终都以二…...

TypeConverter

文章目录 基本描述主要功能接口源码主要实现最佳实践与其他组件的关系常见问题 基本描述 TypeConverter接口是Spring框架中用于在SpEL&#xff08;Spring表达式语言&#xff09;中进行类型转换的核心接口&#xff0c;它允许将不同类型的对象相互转换&#xff0c;例如将字符串转…...

优化 Web 性能:压缩 CSS 文件(Unminified CSS)

在 Web 开发中&#xff0c;CSS 文件的大小直接影响页面加载速度和用户体验。Google 的 Lighthouse 工具在性能审计中特别关注“未压缩的 CSS 文件”&#xff08;Unminified CSS&#xff09;&#xff0c;指出未经过压缩的样式表会增加不必要的字节&#xff0c;拖慢页面渲染。本文…...

每日一个小病毒(C++)EnumChildWindows+shellcode

这里写目录标题 1. `EnumChildWindows` 的基本用法2. 如何利用 `EnumChildWindows` 执行 Shellcode?关键点:完整 Shellcode 执行示例3. 为什么 `EnumChildWindows` 能执行 Shellcode?4. 防御方法5. 总结EnumChildWindows 是 Windows API 中的一个函数,通常用于枚举所有子窗…...

leetcode数组-移除元素

题目 题目链接&#xff1a;https://leetcode.cn/problems/remove-element/ 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为…...

Git 教程:从 0 到 1 全面指南 教程【全文三万字保姆级详细讲解】

目录 什么是 Git &#xff1f; Git 与 SVN 区别 Git 安装配置 Linux 平台上安装 Centos/RedHat 源码安装 Windows 平台上安装 使用 winget 工具 Mac 平台上安装 Git 配置 用户信息 文本编辑器 差异分析工具 查看配置信息 生成 SSH 密钥&#xff08;可选&#xf…...

在 Android Studio 中运行安卓应用到 MuMu 模拟器

一、准备工作 1、​​确保 MuMu 模拟器已正确安装并启动​​ 从官网下载安装最新版 MuMu 模拟器。启动后&#xff0c;建议在设置中调整性能参数&#xff08;如 CPU 核心数和内存分配&#xff09;&#xff0c;以保证流畅运行。 2、​​配置 Android Studio 环境​&#xff08;按…...

stable diffusion部署ubuntu

stable-diffusion webui: https://github.com/AUTOMATIC1111/stable-diffusion-webui python3.10 -m venv venv&#xff08;3.11的下torch会慢得要死&#xff09; source venv/bin/activate 下载checkpoint模型放入clip_version"/home/chen/软件/stable-diffusion-webu…...

《概率论与数理统计》期末复习笔记_下

目录 第4章 随机变量的数字特征 4.1 数学期望 4.2 方差 4.3 常见分布的期望与方差 4.4 协方差与相关系教 第5章 大数定律和中心极限定理 5.1 大数定律 5.2 中心极限定理 第6章 样本与抽样分布 6.1 数理统汁的基本概念 6.2 抽样分布 6.2.1 卡方分布 6.2.2 t分布 6.…...

Java异步编程实战:线框-管道模型的设计与实现

一、什么是线框-管道模型&#xff1f; 线框-管道模型&#xff08;Pipeline-Filter Pattern&#xff09;是一种经典的数据处理架构&#xff0c;其核心思想是将复杂任务拆分为多个独立的处理阶段&#xff08;Filter&#xff09;&#xff0c;通过管道&#xff08;Pipe&#xff09…...

Linux make与makefile 项目自动化构建工具

本文章将对make与makefile进行一些基础的讲解。 假设我们要建造一座房子&#xff0c;建造过程涉及很多步骤&#xff0c;比如打地基、砌墙、安装门窗、粉刷墙壁等。每个步骤都有先后顺序&#xff0c;并且有些步骤可能依赖于其他步骤的完成。比如&#xff0c;你必须先打好地基才…...

鸿蒙 harmonyOS 网络请求

应用通过HTTP发起一个数据请求&#xff0c;支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 接口说明 HTTP数据请求功能主要由http模块提供。 使用该功能需要申请ohos.permission.INTERNET权限。 第一步 &#xff1a; 在module.json5文件里面添加网络…...

【Tauri2】014——简单使用listen和emit

前言 【Tauri2】013——前端Window Event与创建Window-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146981362?spm1001.2014.3001.5502【Tauri2】012——on_window_event函数-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146909801?spm1001…...

解锁 C 语言安全新姿势:C11 安全函数全解析

一、开篇&#xff1a;C 语言安全的新护盾 在 C 语言的编程世界里&#xff0c;缓冲区溢出等安全问题犹如潜藏的暗礁&#xff0c;时刻威胁着程序的稳定与安全。为了有效应对这些挑战&#xff0c;C11 标准引入了一系列安全函数&#xff0c;也被称为 “Annex K” 标准库函数。这些…...

【centos】经常使用的脚本

磁盘挂载 yum install wget -y && wget -O auto_disk.sh http://download.bt.cn/tools/auto_disk.sh && bash auto_disk.shYum镜像源更换 bash <(curl -sSL https://linuxmirrors.cn/main.sh)Yum切换安装的java版本 sudo alternatives --config java...

Unity URP渲染管线详解

一、URP概述 Universal Render Pipeline (URP&#xff0c;通用渲染管线)是Unity推出的轻量级、高性能渲染管线解决方案&#xff0c;适用于移动平台、PC和主机等多种平台。 URP核心特点 跨平台支持&#xff1a;针对不同硬件自动优化 模块化设计&#xff1a;可扩展的渲染功能 …...

Python语言的测试用例设计

Python语言的测试用例设计 引言 随着软件开发的不断进步&#xff0c;测试在软件开发生命周期中的重要性日益凸显。测试用例设计是软件测试的核心&#xff0c;它为软件系统的验证和验证提供了实施的基础。在Python语言中&#xff0c;由于其简洁明了的语法和强大的内置库&#…...

【记录】kali制作绕过火绒检测的木马(仅通过MSF的方式)

目的&#xff1a;制作一个能够绕过火绒检测的简单木马&#xff0c;熟悉一下怎么使用msfvenom制作木马&#xff0c;因此此处使用的火绒版本较低。 工具准备&#xff1a;火绒安全-3.0.42.0 【点击免费下载工具】 **实验环境&#xff1a;**kali-2019.4 &#xff08;攻击方&…...

Linux系统进程

Linux系统进程 程序开始 编译链接的引导代码 操作系统下的应用程序在main执行前也需要先执行段引导代码才能去执行main&#xff0c;但写应用程序时不用考虑引导代码的问题&#xff0c;编译连接时&#xff08;准确说是链接时&#xff09;由链接器将编译器中事先准备好的引导代码…...

Obsidian按下三个横线不能出现文档属性

解决方案: 需要在标题下方的一行, 按下 键盘数字0后面那个横线(英文横线), 然后回车就可以了 然后点击横线即可...

GitHub 上开源一个小项目的完整指南

GitHub 上开源一个小项目的完整指南 &#x1f680; 第一步&#xff1a;准备你的项目 在开源之前&#xff0c;确保项目是可用且有一定结构的&#xff1a; ✅ 最低要求 项目文件清晰、结构合理&#xff08;比如&#xff1a;src/、README.md、LICENSE&#xff09;项目能在本地正…...

大模型——MCP 集成至 LlamaIndex 的技术实践

MCP 集成至 LlamaIndex 的技术实践 一、前言 本文主要介绍了如何将 MCP(Model Context Protocol,模型上下文协议)工具转换为可以直接使用的 LlamaIndex 工具,使 LlamaIndex 用户能像使用 Claude, Cursor 等现代 AI 应用一样无缝集成这些服务。 二、技术背景 2.1 什么是…...

leetcode 1123. 最深叶节点的最近公共祖先

给你一个有根节点 root 的二叉树&#xff0c;返回它 最深的叶节点的最近公共祖先 。 回想一下&#xff1a; 叶节点 是二叉树中没有子节点的节点树的根节点的 深度 为 0&#xff0c;如果某一节点的深度为 d&#xff0c;那它的子节点的深度就是 d1如果我们假定 A 是一组节点 S …...

LeetCode热题100记录-【链表】

链表 160.相交链表 思考&#xff1a;只要p1和p2不相等就一直在循环里&#xff0c;因为就算都为null也会走到相等 记录&#xff1a;需要二刷 public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode p1 headA,p2 headB;whi…...

Python 布尔类型

Python 布尔类型(Boolean) 布尔类型是Python中的基本数据类型之一&#xff0c;用于表示逻辑值。它只有两个值&#xff1a; True - 表示真False - 表示假 1. 布尔值的基本使用 # 定义布尔变量 is_active True is_admin Falseprint(is_active) # 输出: True print(is_admi…...

恒盾C#混淆加密卫士 - 混淆加密保护C#程序

对于大部分C#开发者来说&#xff0c;写完代码点个发布就完事儿了&#xff0c;但你可能不知道——用记事本都能扒开你编译好的程序&#xff01;像dnSpy这类反编译工具&#xff0c;分分钟能把你的EXE/DLL变回原汁原味的源代码&#xff0c;商业机密赤裸裸曝光不说&#xff0c;竞争…...

Java基础 4.4

1.方法快速入门 public class Method01 {//编写一个main方法public static void main(String[] args) {//方法使用//1.方法写好后&#xff0c;如果不去调用(使用)&#xff0c;不会输出Person p1 new Person();p1.speak();//调用方法 p1.cal01();//调用计算方法1p1.cal02(10);…...

黑马点评redis改 part 1

本篇将主要阐述短信登录的相关知识&#xff0c;感谢黑马程序员开源&#xff0c;感谢提供初始源文件&#xff08;给到的是实战第7集开始的代码&#xff09;【Redis实战篇】黑马点评学习笔记&#xff08;16万字超详细、Redis实战项目学习必看、欢迎点赞⭐收藏&#xff09;-CSDN博…...

降维算法之t-SNE

t-SNE&#xff08;t-Distributed Stochastic Neighbor Embedding&#xff09;算法详解 先说理解&#xff1a; t-SNE&#xff08;t-distributed Stochastic Neighbor Embedding&#xff09;是一种用来“可视化高维数据”的降维方法&#xff0c;通俗来说&#xff0c;它就像一个…...

使用 .NET 9 和 Azure 构建云原生应用程序:有什么新功能?

随着 .NET 9 推出一系列以云为中心的增强功能&#xff0c;开发人员拥有比以往更多的工具来在 Azure 上创建可扩展、高性能的云原生应用程序。让我们深入了解 .NET 9 中的一些出色功能&#xff0c;这些功能使构建、部署和优化云应用程序变得更加容易&#xff0c;并附有示例以帮助…...

python基础-10-组织文件

文章目录 【README】【10】组织文件&#xff08;复制移动删除重命名&#xff09;【10.1】shutil模块(shell工具)【10.1.1】复制文件和文件夹【10.1.1.1】复制文件夹及其下文件-shutil.copytree 【10.1.2】文件和文件夹的移动与重命名【10.1.3】永久删除文件和文件夹【10.1.4】用…...

从代码学习深度学习 - LSTM PyTorch版

文章目录 前言一、数据加载与预处理1.1 代码实现1.2 功能解析二、LSTM介绍2.1 LSTM原理2.2 模型定义代码解析三、训练与预测3.1 训练逻辑代码解析3.2 可视化工具功能解析功能结果总结前言 深度学习中的循环神经网络(RNN)及其变种长短期记忆网络(LSTM)在处理序列数据(如文…...

linux gcc

一、常用编译选项 ​基本编译 gcc [input].c -o [output] ​示例&#xff1a; gcc hello.c -o hello # 将 hello.c 编译为可执行文件 hello ./hello # 运行程序 ​分步编译 预处理&#xff1a;-E&#xff08;生成 .i 文件&#xff09; gcc -E hello.c -o hello…...

“一路有你”公益行携手《东方星动》走进湖南岳阳岑川镇中心小学

2025年4月2日&#xff0c;“一路有你”公益行携手《东方星动》走进湖南岳阳岑川镇&#xff0c;一场充满爱与温暖的捐赠仪式在岑川镇中心小学隆重举行。这是一场跨越千里的爱心捐赠&#xff0c;也是一场别开生面的国防教育&#xff0c;更是一场赋能提质的文化盛宴。 岑川镇地处湘…...

HTML语言的空值合并

HTML语言的空值合并 引言 在现代Web开发中&#xff0c;HTML&#xff08;超文本标记语言&#xff09;是构建网页的基础语言。随着前端技术的快速发展&#xff0c;开发者们面临着大量不同的工具和技术&#xff0c;尤其是在数据处理和用户交互方面。空值合并是一些编程语言中常用…...

并发上传及 JS 的单线程特性

1. JS 的单线程特性 JS 是单线程特性&#xff0c;这意味着所有代码都在一个线程上&#xff08;即主线程&#xff09;执行&#xff0c;同一时间只有一个任务在执行&#xff0c;其他任务都在等待。 这意味着即使有多个异步操作&#xff0c;它们的回调函数也会按顺序执行&#xff…...

c语言学习16——内存函数

内存函数 一、memcpy使用和模拟实现1.1参数1.2 使用1.3 模拟实现 二、memmove使用和模拟实现2.1 参数2.2 使用2.3 模拟实现 三、memset使用3.1 参数3.2 使用 四、memcmp使用4.1 参数4.2 使用 一、memcpy使用和模拟实现 1.1参数 因为内存中不知道存的是什么类型的地址&#xff…...

html5炫酷3D文字效果项目开发实践

炫酷3D文字效果项目开发实践 这里写目录标题 炫酷3D文字效果项目开发实践项目概述技术实现1. 基础HTML结构2. 核心CSS技术2.1 3D空间设置2.2 文字立体效果2.3 动画效果 3. 交互优化3.1 鼠标悬停效果3.2 光晕效果 性能优化考虑项目亮点总结 项目概述 在这个项目中&#xff0c;我…...

【前端】【tailwind】tailwind默认重置了样式

Tailwind CSS 自身已经内置了现代化的样式重置方案 —— Preflight&#xff08;基于 modern-normalize&#xff09;&#xff0c;这意味着在大多数情况下不需要额外引入传统的 reset.css 或 normalize.css。但具体是否需要补充重置&#xff0c;取决于你的项目需求&#xff0c;以…...

学透Spring Boot — 009. Spring Boot的四种 Http 客户端

目录 常见的HttpClient Spring 提供的HttpClient RestTemplate Spring 提供的模板类 XXXTemplate RestTemplate的使用 RestTemplate的使用技巧 RestTemplate的问题 RestClient RestClinet的基本使用 RestClient的自动配置 RestClient 序列化对象 异常处理 onStatus …...

STM32单片机入门学习——第14节: [6-2] 定时器定时中断定时器外部时钟

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.04 STM32开发板学习——第14节: [6-2] 定时器定时中断&定时器外部时钟 前言开发…...

Python 元组

Python 元组 元组的介绍 元组和列表很像&#xff0c;都是用来保存多个数据使用一对小括号()来表示一个元组元组和列表的区别在于&#xff0c;列表是可变数据类型&#xff0c;而元组是不可变数据类型 nums (9, 4, 3, 1, 9, 7, 6, 9, 3, 9) print(nums) # (9, 4, 3, 1, 9, 7…...

Linux系统编程:进程管理、内存对比与树莓派应用

一、认识进程和线程&#xff0c;在Linux系统下查看系统中各进程的编号pid并终止一个进程pid 1.进程和线程 ​​进程​​&#xff1a;操作系统分配资源&#xff08;如内存、CPU时间片&#xff09;的基本单位。每个进程有独立的内存空间&#xff0c;进程间通信需要较复杂的机制…...

JSON介绍

JSON 的核心特点​​ ​​易读易写​​&#xff1a;纯文本格式&#xff0c;结构清晰&#xff08;像“键值对”的集合&#xff09;。​​通用性强​​&#xff1a;任何语言都能解析或生成 JSON。​​用途广泛​​&#xff1a;常用于前后端数据传输、配置文件、API 接口等。 &am…...

【Cursor】切换主题

右键顶部&#xff0c;把菜单栏勾上 首选项-主题-颜色主题 选择和喜欢的颜色主题即可&#xff0c;一般是“现代深色”...

【C++11(上)】—— 我与C++的不解之缘(三十)

一、C11 这里简单了解一下C发展好吧&#xff1a; C11是C的第二个大版本&#xff0c;也是自C98以来最重要的一个版本。 它引入了大量的更改&#xff0c;它曾被人们称为C0x&#xff0c;因为它被期待在2010年之前发布&#xff1b;但在2011年8月12日才被采纳。 C03到C11花了8年时间…...

python如何把列表中所有字符变成小写

在Python中&#xff0c;你可以使用列表推导式&#xff08;list comprehension&#xff09;结合字符串的.lower()方法&#xff0c;将列表中的所有字符串元素转换为小写。以下是一个示例&#xff1a; # 定义一个包含字符串的列表 strings ["Hello", "WORLD"…...

DEAP数据集介绍

DEAP数据集介绍 0. 数据集摘要1. 文件列表2. 文件详细信息2.1 Online_ratings2.2 Video_list2.3 Participant_ratings2.4 Participant_questionnaire2.5 Face_video.zip2.6 Data_original.zip2.7 Data_preprocessed_matlab.zip 和 Data_preprocessed_python.zip 3. References欢…...

基于RDK X3的“校史通“机器人:SLAM导航+智能交互,让校史馆活起来!

视频标题&#xff1a; 【校史馆の新晋顶流】RDK X3机器人&#xff1a;导览员看了直呼内卷 视频文案&#xff1a; 跑得贼稳团队用RDK X3整了个大活——给校史馆造了个"社牛"机器人&#xff01; 基于RDK X3开发板实现智能导航与语音交互SLAM技术让机器人自主避障不…...